Bonjour,
je viens vous demander conseil car j'obtiens un résultat quelque peu surprenant avec le dispatch d'un event.
J'ai un fichier mxml qui contient une fonction d'init :
Et la fonction initData :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private function init() : void { model.addEventListener(GraphInitializedEvent.EVENT_ID, initData); model.initGraph(xmldata); }
Enfin, la fonction d'init du graphe qui dispatch l'event :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private function initData(evt : Event):void { trace("graph"); }
Lorsque j'exécute ce code là, j'obtiens bien le fonctionnement désiré, avec sur la sortie de la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public function initGraph(xmldata : XML) : void { trace("init"); dispatchEvent(new GraphInitializedEvent()); trace("init2"); }
La ou cela se complique, c'est que plutot que d'appeler la méthode initData dès le chargement de l'application, je le fais après un appel à un httpservice, je récupère le xml et ensuite j'appelle initData.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 init1 graph init2
Cela donne donc pour la première méthode :
Méthode appelée après réception du XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private function init() : void { model.addEventListener(GraphInitializedEvent.EVENT_ID, initData); //model.initGraph(xmldata); }
initGraph et initData sont inchangées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public function result (data : Object): void { initGraph(data as XML); }
Maintenant voilà ce que j'obtiens sur la sortie de la console :
Je ne comprends pas pourquoi le fait d'appeler la fonction initgraph après une requête empeche l'évènement de se propager alors qu'en l'appelant directement, ca marche sans problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 init1 init2
Si quelqu'un pouvait m'éclairer, je lui en serait très reconnaissant. Merci.
Partager