Dans mon fichier mxml, je fais des calculs dans la balise de script et je les lie à un composant personnalisé.Rendu du composant MXML uniquement après la fin de l'actionScript
<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}"/>
Le problème est que le composant mxml est créé avant l'exécution de l'actioncript. Donc, lorsque le composant est créé, il n'obtient pas calc1
et calc2
et il échoue à partir de ce point. Je sais que la liaison se produit après cela, mais le composant et ses fonctions ont déjà démarré et ont fonctionné avec les valeurs initiales null ou 0.
Ma solution était de créer le composant également en actionscript juste après que calc1
et calc2
ont été créés. De cette façon, j'arrive à contrôler avec précision quand il est créé
<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>
mais cela crée toutes sortes d'autres problèmes en raison de la façon dont je l'ai mis en place le composant.
Est-il possible que je peux encore utiliser MXML pour créer le composant, mais contrôler que le <myComp:Ball>
est créé seulement après init()
est géré et évalué calc1
calc2
?
Merci, va essayer et revenir. – basicblock
N'a pas vraiment résolu mon problème, mais je suppose qu'il a quelque chose à voir avec mon code, donc je choisis cela car il semble être une réponse valide. Merci pour l'aide. – basicblock