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

ActionScript 3 Discussion :

Problème de variable fantôme dans une fonction de callback


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut Problème de variable fantôme dans une fonction de callback
    Bonjour,

    J'appelle une connexion remote qui se déroule bien et qui utilise un responder pour gérer les résultats :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private var retourServeur:Responder = new Responder (succes, echec);
    Ma méthode succes() est donc appelée par le responder, et j'y stocke mes résultats :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private var chaine:String;
    public function succes ( pRetour:* ):void
    {
        chaine = "mes_resultats";
    }


    Mais lorsque j'appelle ma méthode getChaine(), surprise : ma chaine vaut "null" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function getChaine():String
    {
        return chaine;
    }
    Les fonctions de callback ont elles des particularités qui font qu'elles ne peuvent pas renseigner des variables de classe ?

    Merci d'avance.

    Franck.

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut

    tu dois appeler ton getChaine() avant l'execution de succes() !
    fait un trace dans ta méthode succes() pour verifier qu'elle est bien executé

  3. #3
    Membre averti
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Elle l'est !

    J'ai même essayé d'attendre quelques secondes avant d'appeler getChaine(), mais rien n'y fait...

    J'ai aussi essayé d'émettre un évènement depuis succes().

  4. #4
    Membre averti
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Voici le code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package
    {
    	import flash.net.NetConnection;
    	import flash.net.Responder;
    	import flash.events.*;	
     
    	public class Remoting
    	{
    		private var connexion:NetConnection;
    		public var chaine:String;
    		private var retourServeur:Responder = new Responder (succes, echec);
     
    		public function Remoting() 
    		{
    			connexion = new NetConnection();
    			connexion.connect("http://www.mondomaine.fr/amf");
    			connexion.call("mon_service.ma_methode", retourServeur);
    		}
     
    		public function succes ( pRetour:* ):void
    		{
    			trace( pRetour["titre"]); // Fonctionne
    			chaine = "texte de ma chaine";
    		}
     
    		private function echec ( pErreur:* ):void
    		{
    			trace(pErreur.description);
    		}
     
    		public function getChaine():String
    		{
    			return chaine;
    		}
    	} 
    }
    Que j'appelle comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var r:Remoting = new Remoting();
    trace(r.getChaine());

  5. #5
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    ben c'est bien ce que je disais !!
    essaye de relire mon message précédent et fait des trace(), tu verras tout de suite ou est ton probleme !

  6. #6
    Membre averti
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Par défaut
    Salut,

    Effectivement le trace() de getChaine() apparaît avant celui de succes()...

    Je m'en suis tout de même sorti en déclenchant un évènement personnalisé qui contenait les résultats.

    Peut être as tu une solution plus élégante ?

    Merci d'avance.

    Franck.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/06/2006, 13h48
  2. [PHP-JS] une variable php dans une fonction javascript
    Par megapacman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 14h08
  3. [PHP-JS] une variable php dans une fonction javascript
    Par megapacman dans le forum Langage
    Réponses: 3
    Dernier message: 12/06/2006, 14h02
  4. [PHP-JS] Renseigner une variable php dans une fonction JS
    Par gwen-al dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/04/2006, 08h31
  5. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2005, 15h58

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