Voici le topo : Plusieurs boutons sur la page devant jouer les mêmes effets mais devant rediriger vers un state différent quand la séquence d'effets est terminée.
1. Déclaration de ma séquence d'effets entre les balises 'declaration'
effectEnd >> lance un évènement quand l'effet est terminé
maredirection >> est la fonction qui est appelée en fin d'effet
versMaPage >> une variable qui va être remplacé par le nom du state vers lequel on va être redirigé
2. Déclaration des fonctions jouant l'effet et redirigeant vers un autre state<fx:Declarations> <s:Sequence id="monFondu"> // je nomme ma séquence <s:Move target="{macible}"/> <s:Fade alphaFrom="1" alphaTo="0" target="{macible}" effectEnd="maredirection(versMaPage)"/> </s:Sequence> </fx:Declarations>
Lors du clic sur le bouton, la fonction 'versOu' va être appelé et l'effet 'monFondu' va être joué. C'est sur ce bouton que l'on va renseigner la variable 'nomDuState'. Pour ne pas perdre sa valeur lors de l'appel de la fonction 'maredirection', je crée une nouvelle variable 'versMaPage' qui va la stocker.
La fonction 'maredirection' recupere cette variable et s'en sert dans le currentState pour la redirection.
3. Déclenchement sur les boutons<fx:Script> <![CDATA[ public var versMaPage:String ; public function versOu(nomDuState:String):void { monFondu.play(); versMaPage = nomDuState; } public function maredirection(versMaPage:String):void { currentState=versMaPage; } ]]> </fx:Script>
Supposons que nous avons créé 2 states : page1 et page2
Click appelle la fonction 'versOu' et la variable 'nomDuState' est renseignée en indiquant le nom du state de destination
<s:Button label="vers la page1" click="versOu('page1')"/> <s:Button label="vers la page2" click="versOu('page2')"/>
Aucun commentaire:
Enregistrer un commentaire