2016-08-01 108 views
1

我正在尋找一種方法在ActionScript 3中允許用戶滾動TextField(從左到右),如果文本的數量大於TextField的寬度而沒有將光標更改爲閃爍I.ActionScript 3 textfield禁用默認光標

textfield位於MovieClip中。我不能使用MouseChildren = false和selectable = false,因爲兩者都停止可滾動的文本字段。

任何想法?

+0

更新我的回答 – www0z0k

回答

4

那麼,最簡​​單的方法是設置myTextField.selectable = false。光標不會更改,文本字段的內容仍可滾動。也許我在這裏錯過了一些東西,但它適用於我的簡單測試。

+0

我從頭開始創建一個小項目,不能複製這樣的結果因爲TextField現在是不可滾動的。我真的不確定你是如何設法做到的。也許你可以提供這個工作的例子嗎? – AntBirch

+0

當然,你可以找到例子[這裏](http://wonderfl.net/c/0rVK)。由於頁面有自己的可滾動內容,因此最好將預覽切換到全屏模式。 – Nbooo

+1

我想我可能對我的問題措辭不佳。 TextField需要可滾動且不可拖動。我有TextField其中包含文本太長的文本字段,所以這是隱藏的。我希望用戶能夠從左向右滾動TextField以便能夠查看所有文本。我遇到的問題是,如果我可以選擇TextField,那麼textfield不能從左到右滾動。 – AntBirch

1

我建議如下:爲孩子TextField

mc.mouseChildren = false; 
mc.addEventListener(MouseEvent.MOUSE_WHEEL, scroll); 


關掉鼠標交互性和手動滾動它:

private function scroll(e:MouseEvent):void{ 
    tf.scrollV += e.delta;   
} 

工作實例here

更新:
要滾動的文字水平,你需要改變TextFieldscrollH屬性,例如,你可以處理MOUSE_WHEEL事件是這樣的:

private function scroll(e:MouseEvent):void{ 
    tf.scrollH -= e.delta;   
} 
+0

我覺得這個答案有點混亂。我不希望能夠拖動MovieClip,我只是希望文本可以像動態TextField一樣可以滾動。 – AntBirch

1

如果你仍然是開放的建議...
(這是翻車滾動代替鼠標向下拖動滾動)

var scrollSize : int = 5; //# scrolling speed 
tf.selectable = false; 
tf.height = 25; //# (set height only if [tf] is already on Stage with text) 

tf.addEventListener(MouseEvent.MOUSE_OVER, scroll_start); 
tf.addEventListener(MouseEvent.MOUSE_OUT, scroll_stop); 

function scroll_start (evt:MouseEvent) : void 
{ tf.addEventListener(Event.ENTER_FRAME, handler_enterFrame); } 

function scroll_stop (evt:MouseEvent) : void 
{ tf.removeEventListener(Event.ENTER_FRAME, handler_enterFrame); } 

function handler_enterFrame (evt:Event) : void 
{ 
    //# touch right edge = scroll text towards left 
    if (tf.mouseX >= (tf.width - 10)) { tf.scrollH += scrollSize; } 

    //# touch left edge = scroll text towards right 
    if (tf.mouseX <= (tf.x + 10)) 
    { 
     if (tf.scrollH > 0){ tf.scrollH -= scrollSize; } 
     else { /* do else here = Hurray */ } 
    } 
} 

有一個奇怪的效果,如果你完全滾動文本/句子,然後立即結束發生向後滾動,當滾動到零滾動時會出現「反彈」效果。可能造成輸入框架事件。將檢查後,今晚如果可能的,但一般的概念是有代碼...

得飛,但希望它可以幫助...

+1

非常感謝您的回答,不幸的是MOUSE_OVER不適合這個項目,但是會在將來記住它。 – AntBirch

+0

@AntBirch,不用擔心朋友,你現在有一個可行的解決方案。 –