有沒有辦法「聆聽」動態文本?我在舞臺上有這個動態文本框,並且我想在動態文本被更改後調用一個功能。我試圖添加事件監聽器,但它似乎只適用於INPUT文本。有什麼建議麼? 謝謝actionscript 3跟蹤動態文本更改
回答
您是否嘗試過CHANGE
活動?它應該適用於所有類型的TextField,包括非輸入類型。
其實,正如這個問題所說,只有輸入文本發送CHANGE事件。 http://stackoverflow.com/questions/977847/as3-textbox-change-event-not-firing – annonymously 2011-12-18 09:58:06
正如你所說,只有輸入文本發送CHANGE事件。你必須解決它,也許是這樣的:
var oldText:String = "";
function changeEnterFrame (e:Event) {
if (oldText != textField.text) {
// Do your stuff here
}
oldText = textField.text;
}
addEventListener(Event.ENTER_FRAME, changeEnterFrame);
雖然@ annonymously的答案作品,重視enterFrame事件聽衆等待文本改變(或任何改變,對於這個問題)是不是一個好主意 - 中文本可能根本不會改變,那麼爲什麼你會每秒多次運行一段代碼,如果它可以避免的話?更不用說,事實上,你必須一遍又一遍地爲每一個你想要監視的新文本字段實例。
最好對實際變化做出反應,這些變化是由您自己設置的屬性引起的。您應該簡單地擴展了TextField類,並重寫setter方法的htmlText和/或文字派遣更改事件:
override public function set text (text : String) : void {
super.text = text;
dispatchEvent (new Event (Event.CHANGE);
}
明白了,謝謝。也感謝所有其他幫手。 – jazz 2011-12-18 13:31:41
你可以寫很簡單的子類,可以讓你聽文本更改事件。
Sublass:
package
{
import flash.events.Event;
import flash.text.TextField;
public class CustomTextField extends TextField
{
public function CustomTextField()
{
super();
}
override public function set text(value:String):void
{
if(super.text != value)
{
super.text = value;
dispatchEvent(new Event(Event.CHANGE, true));
}
}
}
}
用例:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class CustomTextFieldTest extends Sprite
{
private var tf:CustomTextField;
public function CustomTextFieldTest()
{
tf = new CustomTextField();
tf.x = tf.y = 10;
tf.width = tf.height = 200;
tf.addEventListener(Event.CHANGE, onTfChange);
addChild(tf);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
private function onTfChange(e:Event):void {
trace("text changed, new text: '" + tf.text + "'");
}
private function onMouseDown(e:MouseEvent):void {
tf.text = "some random text: " + Math.round(100 * Math.random());
}
}
}
哎呀,錯過了@ weltraumpirat的回答:) – skozin 2011-12-18 10:16:47
- 1. Actionscript-3:動態文本
- 2. 在ActionScript 3中如何動態更改文本框的行爲
- 3. 跟蹤更改爲純文本 - rails,jquery
- 4. actionscript 3如何跟蹤時間流逝?
- 5. 跟蹤更改
- 6. 跟蹤更改
- 7. 跟蹤更改
- 8. 跟蹤更改
- 9. ActionScript 3:設置動畫文本動態文本實例
- 10. LINQ跟蹤更改
- 11. 我不能在ActionScript 3中更改按鈕內動態文本的內容
- 12. 狀態更改時的時間跟蹤
- 13. 如何更改和跟蹤對文本區域的更改
- 14. ActionScript - Tweener中的跟蹤更新值
- 15. 跟蹤版本校準更改
- 16. Actionscript 3動態文本自動滾動到最底部
- 17. 跟蹤擺動GUI中的更改
- 18. ActionScript跟蹤數組indexOf?
- 19. ActionScript 3.0中手勢跟蹤
- 20. 使用動作文本從文本文件更改動態文本3
- 21. 動態更改ActionScript 3中的圖片而不閃爍
- 22. GNU如何跟蹤文件更改?
- 23. 跟蹤文檔位置更改
- 24. 如何跟蹤文件上的更改?
- 25. C++/Qt:跟蹤文件系統更改
- 26. 跟蹤記錄/文檔更改?
- 27. 跟蹤文檔內容更改
- 28. Actionscript 3修改標籤組件文本
- 29. 如何使用spring動態跟蹤數據庫更改?
- 30. Actionscript 3:動態加載ai文件?
可能重複:http://stackoverflow.com/questions/977847/as3-textbox-change-event-not-firing – annonymously 2011-12-18 10:00:13