Bonjour,

Ça fait maintenant un bon moment que je me casse la tête sur un truc qui peut paraître super simple, mais je comprends pas…
Voila mon problème : Au début du code je charge un fichier xml, pendant se chargement, je remplis un tableau avec des donnés du xml.
Quand je sors du chargement du xml, j’effectue deux commandes « trace » pour vérifier ce qui est dans mon tableau, et là j’ai « undefined »

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var monXml:XML = new XML();//création d'une variable pour y charger le xml
 
monXml.ignoreWhite = true;//ignorer les espaces vide du xml
 
monXml.load('menu.xml');//chargement du xml
 
var monTableau:Array = new Array();
 
monXml.onLoad = function() {
 
	qte = this.childNodes[0].childNodes.length;
 
	for (i=0; i<qte; i++) {
		img = this.childNodes[0].childNodes[i].childNodes[0].firstChild;
		_root.monTableau[i] = img;
		trace(_root.monTableau[i]);//donne un bon résultat
	}
 
};
trace(_root.monTableau[0]);//donne undefined
trace(_root.monTableau[1]);//donne undefined
et voici ce que me donne les commandes trace :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
undefined
undefined
thumbs/banquier.jpg
thumbs/CHYSALIDE.jpg
Il y a donc deux choses que je ne comprends pas. La première c’est pourquoi les deux « undefined » sont avant les deux résultats corrects. Si je demande ça c’est par ce que les « undefined » correspondent au deux lignes de la fin du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
trace(_root.monTableau[0]);
trace(_root.monTableau[1]);
Pourtant j’effectue ces deux lignes à la fin…


Ensuite, comment je peux faire pour ne pas avoir « undefined » mais bien ma valeur ?

Si quelqu’un me m’expliquer le truc c’est vraiment cool car je suis complètement charrette !

Merci d’avance.

Julien