IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Event dispatché 1 fois sur 2


Sujet :

Flex

  1. #1
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Par défaut 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 : 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);
    }
    Et la fonction initData :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private function initData(evt : Event):void {
      trace("graph");
    }
    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
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    init1
    graph
    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.

    Cela donne donc pour la première méthode :
    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);
    }
    Méthode appelée après réception du XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Par défaut
    Je pense avoir trouvé la source, le addEventListener est réalisée après que la requête ait retournée une réponse (c'est ca de travailler en local... lol) du coup cela est normal que la fonction ne soit pas appelée.

    Maintenant il me reste à trouver comment d'abord initialiser le composant et seulement après faire la requête...

    Lors du clic sur un bouton, je fais changer le currentState de mon composant et donc le nouveau composant commence à se charger. Le problème, c'est qu'en même temps je lance une requête pour récupérer le contenu xml mais il arrive avec que le composant soit chargé... J'ai souvent eu ce genre de problème, y a t'il une solution "élégante" à ce genre de problèmes ?

    Merci

Discussions similaires

  1. [Débutant] Event RowEnter activé 2 fois sur un DataGridView
    Par noftal dans le forum VB.NET
    Réponses: 3
    Dernier message: 24/09/2013, 10h01
  2. Réponses: 2
    Dernier message: 29/01/2013, 10h16
  3. $.post s'éxecute plusieurs fois sur un event !
    Par toufou dans le forum jQuery
    Réponses: 5
    Dernier message: 03/03/2010, 15h44
  4. Réponses: 5
    Dernier message: 14/09/2007, 12h02
  5. Pb : malloc qui marche une fois sur deux .... ?
    Par guillaume_pfr dans le forum C
    Réponses: 14
    Dernier message: 21/07/2003, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo