Attendre l'execution d'un fonction

multimania Messages postés 14 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 3 février 2012 - 2 févr. 2012 à 16:57
multimania Messages postés 14 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 3 février 2012 - 3 févr. 2012 à 21:50
Bonjour

Je me heurte à un problème sur le séquencement des instructions dans flash.

Depuis un fonction main() d'un package .as je cherche à lancer une fonction qui se trouve dans un autre fichier .as jusque là cela peut aller, mon soucis est le suivant:



public function Main()
{
Package.mafonction ();
//autre code

}


Je voudrais que la partie "//autre code" ne s'execute que lorsque la fonction "mafonction" est remplie

sachant que dans cette fonction il n'y à pas d'evenement particulier (loader ou autres).


Quel peut -être le procédé le plus simple pour réaliser cette prouesse......

Le package "mafonction" est utilisé plusieurs fois dans d'autre fichier .as

En vous remerciant d'avance pour toutes vos idées, aides, ou pistes.

Cordialement

5 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
2 févr. 2012 à 17:34
Bonjour,
En gros, tu veux exécuter une fonction d'une classe externe à la classe demandée ?

Il existe deux solutions :
- soit ta classe appelée est statique et à ce moment-là, ça passe tout seul avec un attribut public sur la fonction
- soit ta classe appelée est dynamique et il faut l'instancier dans la classe appelante afin de l'exécuter au travers de son alias (maClasse.maFonction();)

Peg'
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
3 févr. 2012 à 00:54
Bonjour,
il me sembleque sont soucis est plutot dans la mise en place d'un callback.
il suffit pour ce faire de passer le nom de ta fonction retour en parametre dans la fonction de ta classe appelée, par exemple:

classe main
public function Main(){ 
Package.mafonction(retour); 
}
public function retour():void{
//autre code
}

classe appelée
mafonction(pRetour:Function):void{
// le contenu
pRetour();
}


voila c'est tout simple comme ca tu peux voir un callback différent chaque fois

Cordialement
0
multimania Messages postés 14 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 3 février 2012
3 févr. 2012 à 15:37
Bonjour


Merci pour les réponses, la manière de faire d'Aerolyte fonctionne, mais j'avoue que je ne comprends pas trop le principe !!!!

que veut dire le paramètre pRetour(); dans la classe appelé ?

Quel est donc le principe ?

En tout les cas encore merci

Cordialement
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
3 févr. 2012 à 17:34
Re

pRetour:Function > c'est l'argument envoyé par Package.mafonction(retour) et de type Function

pRetour est un nom sans aucun interet, car il va prendre la valeur envoyé (ici "retour"),on pourrait tout aussi bien faire

mafonction(maurice:Function):void{
// le contenu
maurice();
}


toutefois l'argument envoyé doir avoir une fonction en correspondance.

public function Main(){ 
Package.mafonction(retour);
Package.mafonction(callback);
}
public function retour():void{
//code 0
}
public function callback():void{
//code 1
}


Ceci est donc une méthode relativement simple, il existe d'autres méthodes telle que le dispatchevent, mais c'est pas toujours interessant

Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
multimania Messages postés 14 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 3 février 2012
3 févr. 2012 à 21:50
Bonsoir

Ok je comprends mieux maintenant, merci pour le cours.

Bien cordialement
0