1
在我的mxml文件中,我正在腳本標記中進行一些計算,並將它們綁定到一個自定義組件。只有在動作完成後才渲染MXML組件
<fx:Script>
<![CDATA[
[Bindable] public var calc1:Number;
[Bindable] public var calc2:Number;
private function init():void {
calc1 = //calculation;
calc2 = //calculation;
}
]]>
</fx:Script>
<mycomp:Ball compfield1="{calc1}" compfield2="{calc2}"/>
問題是在運行actionscript之前正在創建mxml組件。所以當組件創建時,它實際上並沒有得到calc1
和calc2
,並且從那一點起它就失敗了。我知道綁定發生在那之後,但組件及其功能已經開始並且以null或0初始值運行。
我的解決方案是在calc1
和calc2
已創建後,在actionscript中創建組件。這樣,我得到,當它的創建
<fx:Script>
<![CDATA[
[Bindable] public var calc1:Number;
[Bindable] public var calc2:Number;
private function init():void {
calc1 = //calculation;
calc2 = //calculation;
var Ball:Ball = new Ball(calc1, calc2);
}
]]>
</fx:Script>
精確地控制,但這是建立各種其他問題,是由於我已經設置了該組件的方式。
有沒有辦法我仍然可以使用MXML創建組件,但控制它的<myComp:Ball>
被創建後,才init()
運行和calc1
calc2
評估?
謝謝,會嘗試一下,並取回。 – basicblock 2010-04-02 14:51:42
沒有真正解決我的問題,但我猜它與我的代碼有關,所以我選擇這個,因爲它看起來像一個有效的答案。謝謝您的幫助。 – basicblock 2010-04-03 05:03:09