Renus02
Messages postés182Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention22 octobre 2010
-
23 avril 2006 à 14:33
Renus02
Messages postés182Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention22 octobre 2010
-
24 avril 2006 à 15:52
bonjour,
voila dans l'une de mes class j'ai la méthode suivante :
public function initXml(adresse:String)
{
var listeNoeud = new Array();
var noeud_xml = new XML();
noeud_xml.ignoreWhite = true;
noeud_xml.onLoad = function()
{
listeNoeud = new Array();
var noeuds = this.firstChild.childNodes;
for (var i = 0; i < noeuds.length; i++)
{
listeNoeud[i] = new Noeud(noeuds[i].attributes.nom,parseInt(noeuds[i].firstChild.firstChild.nodeValue),parseInt(noeuds[i].firstChild.nextSibling.firstChild.nodeValue)
}
}
noeud_xml.load(adresse);
return listeNoeud;
}
la liste de noeud se crée bien dans la fonction declanché par le 'onload' , mais j'aurai aimé savoir comment faire pour la retourné depuis ma méthode initXml, il semblerait que la liste n'est plus d'existance une fois sorti de la fonction declanché par le onload. Surement un problème de portée de ma variable.
Prouprou_Sensei
Messages postés517Date d'inscriptionmardi 23 décembre 2003StatutMembreDernière intervention24 octobre 20061 24 avril 2006 à 12:36
Le probleme vient du onLoad qui est asynchrone. En gros le onLoad se lance apres la fin de ta fonction, donc ta fonction te retourne un objet vide. En plus tu redeclare ta variable dans le onLoad, ce qui fait que la variable est locale. Tu doit attendre la fin du chargement pour appeler une autre fonction.