Event dispatché 1 fois sur 2
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 :
Code:
1 2 3 4 5
|
private function init() : void {
model.addEventListener(GraphInitializedEvent.EVENT_ID, initData);
model.initGraph(xmldata);
} |
Et la fonction initData :
Code:
1 2 3 4
|
private function initData(evt : Event):void {
trace("graph");
} |
Enfin, la fonction d'init du graphe qui dispatch l'event :
Code:
1 2 3 4 5
| public function initGraph(xmldata : XML) : void {
trace("init");
dispatchEvent(new GraphInitializedEvent());
trace("init2");
} |
Lorsque j'exécute ce code là, j'obtiens bien le fonctionnement désiré, avec sur la sortie de la console :
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.
Cela donne donc pour la première méthode :
Code:
1 2 3 4 5
|
private function init() : void {
model.addEventListener(GraphInitializedEvent.EVENT_ID, initData);
//model.initGraph(xmldata);
} |
Méthode appelée après réception du XML
Code:
1 2 3
| public function result (data : Object): void {
initGraph(data as XML);
} |
initGraph et initData sont inchangées.
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.
Si quelqu'un pouvait m'éclairer, je lui en serait très reconnaissant. Merci.