2011-11-09 63 views
0

我想綁定一個變量,如果有變化,它會自動更新標籤。綁定更新標籤

var disp:String = "00:00:00"; 
var lb:Label = new Label(); //Add Label to an "ContentGroup" container. 
lb.text = totalTime; 
addElement(lb); 

disp="00:00:01"; //New timing 

BindingUtils.bindProperty(totalTime, "text", disp, "text"); 

我該怎麼做?

+1

是否有你必須在ActionScript中執行此操作的原因? – JeffryHouser

+0

不確定,如果使用DispatchEvent會比getChildByName更高效?我應該在什麼情況下使用它? –

回答

1

首先,我想澄清你的問題。你想要綁定標籤lbdisp,然後每當disp更改,lb.text更改,是嗎?

  1. 爲什麼不使用MXML(與綁定機制完美匹配)呢?

  2. 如果你真的想使用ActionScript,有一些需要注意的地方。首先,「主機」屬性必須是可綁定的(在頂部添加[Bindable]標籤)。接下來,BindingUtils.bindProperty應該直接將兩個值相互綁定。在這種情況下,更改到下面的代碼將工作:

    [Bindable] public var disp: String = "00:00:00"; 
    
    private function initBinding(): void { 
    
    var lb: Label = new Label(); 
    
    addElement(lb); 
    
    BindingUtils.bindProperty(lb, "text", this, "disp"); 
    
    } 
    

順便說一句,使用綁定如果可能的話,我總是迴避。在簡單情況下手動更新屬性將保存文件大小和性能。

+0

我看到如何使用bindProperty參數。感謝您的精彩提示,我將使用getChildByName方法。 –