Bonjour !
J'ai un tableau de variables stucturées à faire en as2 avec flash.
etc ..
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
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 :
Dans la fonction de lecture du xml il y 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;
lecture du nombre d'éléments, puis :
Jusque là, ça a l'air de marcher. J'ai bien l'affichage des couples successifs : libelle et nb.
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 ) ; }
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... ;-)
Partager