Comment récupérer une variable locale ?

Résolu
marsupulamis Messages postés 7 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 avril 2008 - 26 oct. 2006 à 14:54
hidre01 Messages postés 1 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 4 novembre 2008 - 4 nov. 2008 à 22:52
Bonjour,

Le problème me parait simple mais ça fait deux heures que je bloque... j'en peux plus !

J'aimerais tout simplement récupérer une variable locale : Voici mon code :

Chemin = new Array();
Titre = new Array();
no_1 = 0;
nb_art = 0;
NB = this;
Pfd = 50;



var myXML = new XML();
myXML.ignoreWhite = true;



myXML.onLoad = function(flag) {
  i = 0;
  x = myXML.firstChild;
  while (x.childNodes[i] != undefined && i<20) {
  Chemin[i] = '"' + x.childNodes[i].childNodes[0].attributes.value +'"';
  i++;
  var tousChemins:String = "["+(Chemin)+"]";
    }
}
trace ("Externe : " + tousChemin);
myXML.load("../xml.xml");



//Sortie
//Externe : undefined


Flash me renvoie : "Externe : undefined"

Comment puis-je faire pour récupérer cette variable?

PS Si je mets
trace ("Interne: " + tousChemin);
à l'intérieur dela fonction, Flash me renvoie la chaine que je souhaite...

Merci d'avance pour votre aide ?

5 réponses

atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
26 oct. 2006 à 15:37
Le problème est que ta variable tousChemin est définie dans la fonction et s'évapore quand la fonction atteint la fin de son éxécution. Il faudrait que tu la stockes quelque part, par exemple _root.tousCheminStocké = tousChemin, puis tu fais trace ("Externe : " + _root.tousCheminStocké);
3
marsupulamis Messages postés 7 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 avril 2008
27 oct. 2006 à 01:02
Merci pour la réponse mais le problème reste identique : j'ai changé mon code selon tes instructions mais j'ai tjs undefined en sortie.



Chemin = new Array();
Titre = new Array();
no_1 = 0;
nb_art = 0;
NB = this;
Pfd = 50;

var myXML = new XML();
myXML.ignoreWhite = true;



myXML.onLoad = function(flag) {
  i = 0;
  x = myXML.firstChild;
  while (x.childNodes[i] != undefined && i<20) {
  Chemin[i] = '"' + x.childNodes[i].childNodes[0].attributes.value +'"';
  i++;
  var tousChemins:String = "["+(Chemin)+"]";
 _root.tousCheminsstocke = tousChemins;
    }
}
trace ("Externe : " + _root.tousCheminsstocke);
myXML.load("../xml.xml");
3
atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
27 oct. 2006 à 18:56
La le probleme est que tu n'attends pas que le xml soit chargé, le code est éxécuté ligne apres ligne, donc ici tu essaye de récupérer une valeur non encore définie puisuqe tu ne charges le xml qu'apres avoir demandé le trace. De plus comme tu charges un fichier externe tu dois attendre que le fichier soit chargé, par exemple en créant une fonction onEnterFrame sur un clip quelconque qui teste si myXML.loaded est a vrai et si c'est le cas affiche la valeur stockée dans _root.toutCheminsstocke
3
marsupulamis Messages postés 7 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 avril 2008
29 oct. 2006 à 14:56
Merci beaucoup !
3

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

Posez votre question
hidre01 Messages postés 1 Date d'inscription jeudi 6 septembre 2007 Statut Membre Dernière intervention 4 novembre 2008
4 nov. 2008 à 22:52
ok m''est qu'elle est la partie qui charge le fichier swf ou peut importe le fichier qu'il charge m'est moi j'emerai s'avoir si il se bout de code s'aurai recuperer une variable ou le score du jeux swf

merci pour votre aide
0
Rejoignez-nous