Return et fonctions imbriquées

eagle59800 Messages postés 19 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 22 avril 2010 - 20 avril 2010 à 16:21
eagle59800 Messages postés 19 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 22 avril 2010 - 21 avril 2010 à 09:57
Bonjour à toutes et tous,

Je ne poste que rarement mais cette fois ci je n'arrive pas à m'en sortir seul.

Voici mon problème :

Une fonction call est appelée, elle doit retourner TRUE une fois que la fonction handleComplete est elle même appelée.

Voici le code ci-dessou (qui ne fonctionne pas biensûr!) :

function call():Boolean {
     myRequest.url="URL";
     var loader:URLLoader = new URLLoader();
     loader.addEventListener(Event.COMPLETE, handleComplete);

     function handleComplete(event:Event):Boolean{
          return true;
     }
     return loader.load(myRequest);
}


Merci pour votre aide qui m'est prèciseuse!

10 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
20 avril 2010 à 17:27
bonjour,

Quel est l'intérêt d'imbriquer la fonction ?

Peg'
0
eagle59800 Messages postés 19 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 22 avril 2010
20 avril 2010 à 17:31
Salut pegase,

Merci de ta réponse.

Effectivement l'imbrication n'est pas obligatoire, mais ca ne règle pas le problème.

Le code ne marche pas plus si il n'y a pas d'imbrication ...

function call():Boolean {
     myRequest.url="URL";
     var loader:URLLoader = new URLLoader();
     loader.addEventListener(Event.COMPLETE, handleComplete);


     return loader.load(myRequest);
}
function handleComplete(event:Event):Boolean{
     return true;
}
0
eagle59800 Messages postés 19 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 22 avril 2010
20 avril 2010 à 17:40
Alors voila le code suivant ne me retourne plus d'erreur, mais par contre renvoi toujours FALSE alors qu'il devrait renvoyer TRUE ...

var myRequest:URLRequest=new URLRequest;

var b=call_();

trace(b);

function call_():Boolean {
     myRequest.url="http://www.zapandtalk.com/service.php?action=changeStatus&id=&status=busy";
     var loader:URLLoader = new URLLoader();
     loader.addEventListener(Event.COMPLETE, handleComplete);
     var ret=loader.load(myRequest);
     
 if (ret=="true") {
return true;
 }else{
return false;
 }
}

function handleComplete(event:Event){
 var ret=true;
     return ret;
}
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
20 avril 2010 à 18:28
rien d'anormal à tout ça :

dans la doc de flash, je lis ça : URLLoader.load(request:URLRequest):void
c'est à dire que la fonction ne renvoie rien, ce qui fait que ta variable "ret" reste à false par défaut.

Qu'est-ce que tu essayes de faire exactement ?

Peg'
0

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

Posez votre question
eagle59800 Messages postés 19 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 22 avril 2010
20 avril 2010 à 18:49
En fait j'ai juste besoins d'attendre que la requête soit complète avant de retourner true ...
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
20 avril 2010 à 19:32
exact...

Peg'
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
20 avril 2010 à 19:34
Alors il y a un Event spécifique pour ça : Event.COMPLETE

Il se déclenche quand le chargement est fini.
Tu devrais lire le tuto sur les chargement externes qui se trouve dans la section tutoriels de Flashkod.

Peg'
0
eagle59800 Messages postés 19 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 22 avril 2010
20 avril 2010 à 19:44
Salut Pegase,

J'utilise déjà Event.Complete : "loader.addEventListener(Event.COMPLETE, handleComplete);" c'est d'ailleurs cet event qui appel handleComplete et c'est à ce moment là qu'il me faudrait pouvoir retourner TRUE à la fonction call ...

Merci de ton aide
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
20 avril 2010 à 20:13
tu ne peux pas ..

Il faut que ta fonction déclenchée lors de la fin du chargement fasse quelque chose pour palier à ça.

Peg'
0
eagle59800 Messages postés 19 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 22 avril 2010
21 avril 2010 à 09:57
Ok pégase ... Merci de ton aide je me doutais bien que ca aller être compliqué ...

Je suis actuellement entrain de faire des tests sur mon site et je manque cruellement de Beta testeurs.

Serait ce déplacer de faire une demande d'aide ici ? Je donne l'adresse du site en MP à ceux qui me contacte
0
Rejoignez-nous