2010-08-14 59 views
1

當Flex SDK將MXML轉換爲actionscript時,它會生成大量的數據綁定代碼。但有時候,我不想綁定一個變量,例如,如果我知道變量不會改變。禁用MXML中的數據綁定

我似乎無法在Flex中找到解決方法來禁用自動生成的數據綁定。

此外,我希望這也可能有助於數據綁定引發的一些運行時警告。 爲了解決這些問題,我有時使用下面的代碼,它只會引發語法警告(並且不會在運行時顯示在我的控制檯中)。 語法警告: 使用方括號運算符時,數據綁定將無法檢測到更改。對於Array,請改用ArrayCollection.getItemAt()。

回答

3

下面的標籤會告訴的Flex SDK變量不會真正改變和刪除「無法綁定...」警告:

[Bindable("__NoChangeEvent__")] 
private var model:MyModel = MyModel.instance; 

接下來,移動array[i]般的表情到一個單獨的功能,以刪除警告。如果你有這樣的:

<mx:Button label="{array[i]}"/> 

然後創建一個功能:

private function buttonLabel(i):String 
{ 
    return array[i]; 
} 

而且MXML:

<mx:Button label="{buttonLabel(i)}"/> 

PS:如果在運行時按鈕標籤的變化,那麼你可以添加[Bindable(...)]元標記功能:

[Bindable("stringsChange")] 
private function buttonLabel(i):String 
{ 
    return array[i]; 
} 

dispatchEvent(new Event("stringsChange"));