Bonjour !

J'ai un tableau de variables stucturées à faire en as2 avec flash.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
tabElements[0].libelle
tabElements[0].nb
tabElements[1].libelle
tabElements[1].nb
etc ..

Je lis un xml qui contient différentes infos sur N éléments.
Donc pour l'ex : libellé et nombre.

Je voudrais ranger ça dans un tableau avec une boucle for.
J'ai écrit ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
var un_element:Object = new Object();
un_element.lib = ' ';
un_element.nb = 0;
 
var tabElements:Array = new Array;
Dans la fonction de lecture du xml il y a
lecture du nombre d'éléments, puis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
for (i=0; i<nbElements; i++) {
   un_element.lib = x.childNodes[3].childNodes[i].attributes.lib;
   un_element.nb = x.childNodes[3].childNodes[i].childNodes[0].childNodes[0];
 
   tabElements.push (un_element);
   trace (" lib " + tabElements[i].lib ) ;
   trace (" nb " + tabElements[i].nb ) ;
}
Jusque là, ça a l'air de marcher. J'ai bien l'affichage des couples successifs : libelle et nb.

Par ex, si dans le xml j'ai :

element 1 :
libellé = cacahuette
nb = 10

element 2 :
libellé = asticot
nb = 200

Dans la boucle j'ai bien ces éléments là qui sont tracés correctement.

Mais si dans la boucle, après le push, j'ajoute :

if (i>0)
trace ("lib 0: " + tabElements[0].lib + " lib 1: " + tabElements[i].lib ) ;

(i=1 à ce moment) j'obtiens
lib 0: asticot lib 1: asticot

Deux fois la même chose comme si l'indice ne servait à rien !

De même si j'accède au tableau des éléments en sortie de la boucle, que ce soit pour i=0 ou i=1 j'ai toujours les asticots et le nb 200 !
Et j'ai bien tabElements.length qui vaut 2.

Est-ce que quelqu'un a une idée?

J'ai déjà cherché vainement la bonne solution pour faire ce tableau de structures, j'ai essayé push, sans trop savoir comment m'y prendre .. mais ya un gros big dans ma méthode !

Un grand merci de votre aide... ;-)