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

Flash Discussion :

AS - Attendre la fin d'un onLoad pour faire un return


Sujet :

Flash

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut AS - Attendre la fin d'un onLoad pour faire un return
    Bonjour à tous,
    J'ai un petit souci que voici.
    Ma class:
    class account{

    function create(u:String, p:String):Boolean{
    var aEnvoyer = new LoadVars();
    var aRecevoir = new LoadVars();
    aEnvoyer.user = u;
    aEnvoyer.password = hex_md5(p);
    aEnvoyer.sendAndLoad(PathPHP+"adduser.php", aRecevoir, "POST");
    aRecevoir.onLoad = function(){
    if (aRecevoir.Rep == "OK"){return true;}else{return false;}
    }
    }
    }
    J'aimerai l'utiliser de cette manière:
    var compte = new account();
    if (compte.create(ChUser.text, ChPassword.text)==true){
    trace("Compte créé avec succès!");
    }else{
    trace("Utilisateur déjà existant!");
    }
    Mon problème est que la fonction create n'attend pas la fin de la fonction aRecevoir.onLoad = function(){. N'existe-t-il aucune solution pour faire en sorte qu'une fonction attende l'éxécution d'un onLoad pour faire son return?

    Merci pour toutes réponses!
    ++

  2. #2
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    il faudrait peut être indiquer au moment du onLoad ce qu'il doit faire.
    Il 'sagit d'une programmation évènementielle, donc elle doit déclencher autre chose.

    Selon ton code fourni, ton onLoad en fait que: trace(...)

    Bien à toi

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Je n'ai pas trop compris ta réponse aorgerit...

    J'ai simplifier le code pour mieux m'expliquer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function test(){
    	var aRecevoir = new LoadVars();
    	var Retour = new Boolean(false);
    	aRecevoir.load(PathPHP+"TestStressBD.php")
    	aRecevoir.onLoad = function(){
    		trace("onLoad");
    		Retour=true;
    	}
    	return Retour;
    }
    Quand je fait : "trace(test());" j'obtiens "False" puis "onLoad" alors que je voudrai "onLoad" puis "True"...
    Je me demandai donc si il n'y avait pas une solution permettant d'attendre la fin du onLoad pour faire le "return Retour;".
    ++

  4. #4
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    bonjour,

    ben évidemment que return Retour ne marche pas , dans ton code tu lui dis ça, hors ta fonction DOIT attendre de disposer de l'information pour la diffuser.
    Et ta fonction n'agit qu'une fois, au moment d'ailleurs où tu demande de charger les informations ET les transmettre sans attendre qu'elles soient chargées....

    return est lié à la fonction , pas à l'écouteur.

    Bien à toi.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Mais existe-t-il une solution pour que la fonction test() renvoye true quand le onLoad est fini?

  6. #6
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    oui.. créer une autre fonction qui est alors appelée par le onLoad.

    Bien à toi

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Le problème est que ma fonction test est dans une classe. J'aimerai éviter que la classe appelle une fonction du _root pour dire si la fonction test c'est bien déroulé ou non... C'est pour cela que je voulai utiliser le return de test.
    Existe-t-il une solution pour creer un evenement personnalisé dans une classe sur lequel je pourrai mettre un addListener dans le _root?
    ++

  8. #8
    Membre averti Avatar de aorgerit
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 257
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    ben si je ne trompe, il suffit de créer une autre fonction dans la même classe non ?


    bien à toi

  9. #9
    Membre régulier
    Homme Profil pro
    Directeur technique
    Inscrit en
    Novembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 56
    Points : 105
    Points
    105
    Par défaut
    Tu peux facilement faire des événements dans une classe

    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
     
     
    class TestClass
    {
    <div style="margin-left:40px">
    public var MonEven : Function = undefined;
     
    public function Test():Void
    {
    	var aRecevoir = new LoadVars();
    	//Point 1
    	aRecevoir.Parent = this;
    	aRecevoir.load(PathPHP+"TestStressBD.php")
    	aRecevoir.onLoad = function()
    	{
    	 	Parent.OnEvent();
    	}
    	return Retour;
    }
    </div>
    }
    Ailleurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var monTest :ClassTest = new ClassTest();
    monTest.MonEven = function()
    {
    	//Le code ici s'exécute quand le chargement est terminé.
    }
    Remarque: le point 1 ne fonctionne que si la classe est dynamic. Sinon il faut trouver un autre moyen de cibler la classe parente. Une possibilité est d'en faire une qui fait le lien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class MonLoadVars extends LoadVars
    {
    	public var Parent;
    }

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Merci à vous deux! Je vais tester ça asfez.

    ++


    ----------------------------------------------
    Nikel ca marche au poil! J'ai juste modifier quelques trucs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public var loadSuccess : Function = undefined;
    public function test(){
    	var aRecevoir = new LoadVars();
    	var ThisFunc = new Object(this);
    	aRecevoir.load(PathPHP+"TestStressBD.php")
    	aRecevoir.onLoad = function(success:Boolean){
    			ThisFunc.loadSuccess(success);
    	}
    }
    Encore merci asfez!!

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

Discussions similaires

  1. Attendre la fin d'un callback pour continuer
    Par yous18 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 02/12/2013, 15h01
  2. Attendre la fin d'un callback pour continuer
    Par Tgaud dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2013, 14h06
  3. [PHP 5.0] Attendre la fin d'une fonction pour en realiser une autre
    Par keaton7 dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2009, 16h06
  4. Attendre la fin d'un son pour enchainer le script
    Par cahierlabo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/02/2008, 09h55
  5. Réponses: 4
    Dernier message: 08/06/2007, 15h36

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