簡體   English   中英

設置TextField文本屬性時觸發事件

[英]Fire an event when a TextField text property is set

我在舞台上有一個TextField實例。 我無法訪問的第三方系統從項目外部更新了該字段中的副本。 我不知道該如何實現,但我需要知道它何時發生。

我想知道在字段中何時更新文本,因此我可以根據其新內容設置格式和位置。 我試過了

myTextField.addEventListener(Event.CHANGE, updateMethod);

但這似乎僅在通過直接用戶交互更改文本而不是從我得到的來自外部的注入時觸發。

有什么方法可以監聽對myTextField.text的分配,而不是僅偵聽用戶通過鼠標/鍵盤進行的更改?

感謝任何建議。 提前致謝 :)

您可以使用自己的類包裝它,而不是直接訪問文本字段,並在觸發setter時調度事件:(未經測試的代碼)

public class MyTextField extends EventDispatcher {

    private var textField:TextField;

    public MyTextField(t:TextField) {
        textField = t;
    }

    public function set text(s:String) {
        textField.text = s;
        var e:Event = new Event(Event.CHANGE);
        dispatchEvent(e);
    }

    public function get text():String {
        return textField.text;
    }

}

以及代碼中的其他位置:

var mytf:MyTextField = new MyTextField(stage.myTextField); //stage.myTextField is the reference to the text field on the stage

mytf.addEventListener(Event.CHANGE, function(e:Event) { /* get event */ });

// don't use stage.myTextField.text to set text, instead, use:
mytf.text = "setting text!"; //this will trigger the event callback above

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM