Comment récupérer une variable locale ?

Résolu
Signaler
Messages postés
7
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
19 avril 2008
-
Messages postés
1
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
4 novembre 2008
-
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

Messages postés
194
Date d'inscription
jeudi 1 janvier 2004
Statut
Membre
Dernière intervention
16 juillet 2007
1
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é);
Messages postés
7
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
19 avril 2008

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");
Messages postés
194
Date d'inscription
jeudi 1 janvier 2004
Statut
Membre
Dernière intervention
16 juillet 2007
1
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
Messages postés
7
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
19 avril 2008

Merci beaucoup !
Messages postés
1
Date d'inscription
jeudi 6 septembre 2007
Statut
Membre
Dernière intervention
4 novembre 2008

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