В моем файле mxml я делаю некоторые вычисления в теге script и привязываю их к пользовательскому компоненту.
<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}"/>
Проблема в том, что компонент mxml создается перед запуском actionScript. Поэтому, когда компонент создан, он фактически не получает calc1
и calc2
и с этого момента происходит сбой. Я знаю, что связывание происходит после этого, но компонент и его функции уже запущены и работают с нулевыми или нулевыми начальными значениями.
Мое решение состояло в том, чтобы создать компонент также в ActionScript сразу после создания calc1
и calc2
. Таким образом, я получаю контроль именно тогда, когда он создан
<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
?