20/09/2010

Atteindre le currentState Parent d'un composant

Prenons un projet nommé Siteweb contenant un fichier principal (main.mxml) qui contiendrait plusieurs états (accueil, formulaire...).
Sur le state "accueil", pour atteindre le state "formulaire", il suffit de mettre un bouton et de lui indiquer au clic d'aller sur le formulaire.
<mx:Button  click="currentState='formulaire'"/>
Maintenant, si le contenu du state "formulaire" était un composant nommé "formulaire.mxml" et qu'il contenait un bouton pour revenir vers le state "accueil", mettre juste currentState='accueil' ne suffirait pas.
Voici donc ce que j'ai trouvé pour y arriver (il y a surement d'autres manières d'y parvenir mais personne ne me les a communiquées ;-))
Je vais créer une fonction qui "reconnaitra" le root du projet :
<mx:Script>
  <![CDATA[
      import mx.core.Application;
      public var destination:String;
      public function goCurrentState(destination:String):void
      {
      Application.application.currentState=destination;
      }
  ]]>
</mx:Script>
- La variable destination nous servira à renseigner le nom du state vers lequel nous voulons aller.
- goCurrentState est la fonction que j'appellerai pour me rediriger vers le bon state.
- Application.application. me sert à "retrouver" le root du projet.

Maintenant,  il me suffit de l'appeler sur le clic du bouton en remplaçant ma variable destination parle nom du state voulu.
<mx:Button  click="goCurrentState('accueil')"/>

Aucun commentaire:

Enregistrer un commentaire