時,Flex認爲是這樣的:等效採用純ActionScript
<mx:Label text="Hello {MyVar} World!"/>
它必須翻譯,不知怎的,爲ActionScript。但是如果我需要在運行時做類似的事情。我如何動態地完成什麼?當我不知道綁定模板的內容時。
在ActionScript那就需要它看起來東西這樣的:
public function CustomDynamicBinding(StringToBind:String):Label {
// *EXAMPLES* Of StringToBind:
// "Hello {MyVar} World!"
// "Product: {name} ${price}.00"
// "{data.label}, {data.description}"
// I've Written It This Way Because I DO NOT KNOW The Exact Text To Be Bound At Design Time.
[Bindable]
var Lab:Label=new Label();
Lab.text=???
return(Lab);
}
如何可以完成這種「動態」的結合......我在哪裏不知道的價值「StringToBind」,直到運行時?爲了這個問題的目的,我們可以假設我知道「StringToBind」中提到的任何變量都在運行時保證存在。
我已經意識到有更直接的方法來完成這個確切的事情,並且只使用Flex/MXML。對我的項目來說非常重要,但我明白如何在沒有MXML的情況下實現這一點。
這樣做: lab.text = stringToBind.replace(「{myVar}」,str);
不會工作,因爲這只是簡單地將「{myVar}」 - (甚至可能不是「stringToBind」!!中引用的變量)的值賦值給標籤,並且不考慮何時和如果myVar變化!我不需要以某種方式使用像bindProperty?
約書亞,我希望這是你想要的,或多或少: http://stackoverflow.com/questions/3081229/flex-actionscript-how-to-change-property-label-of-all-buttons/ 3084992#3084992 – amn 2010-06-24 18:50:09