Pb création tableau par rapport à XML [Résolu]

Signaler
Messages postés
112
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
17 janvier 2015
-
Messages postés
112
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
17 janvier 2015
-
Bonjour,

je suis actuellement en train de développer mon premier site en AS3 et je bute sur une chose :

J'importe un XML et dans ce XML, j'ai environ 250 noeuds de ce genre :


Pas de pb avec mon XML, il est bien importé et avec .photo.length, il me retourne bien le nombre de noeuds.

Ensuite je voulais qu'il me créé un tableau avec les différentes valeurs qu'on peut trouver dans l'attribut catf et qu'il les mette dans un tableau avec près de pouvoir créer un menu déroulant.

J'ai donc tapé ceci :

nombrePhotos=fichierXML.photo.length();
var tbl_cat:Array=new Array();

//pour chaque photo,
for(var i:Number=0;i<nombrePhotos;i++){
//on teste dans toutes les cases du tableau si la catégorie est déjà présente
for(var j:Number=0;j<tbl_cat.length;j++){
trace(j)
//si pas présente,
if(fichierXML.photo[i].@catf!=tbl_cat[j]){
//on la créé
tbl_cat.push(fichierXML.photo[i].@catf);
}
}
}

le problème est que l'animation bloque comme lors d'une boucle infinie. Hors je n'ai pas l'impression que la mienne le soit...

Il me retourne ça avec le trace :

"...
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
Error: Error #1502: La durée d'exécution d'un script excède le délai par défaut (15 secondes).
at photo_fla::MainTimeline/photo_fla::frame103()"

Merci d'avance


--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice

3 réponses

Messages postés
58
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
7 mai 2012

là ca marche :

fichierXML = new XML(e.target.data);
trace (fichierXML);
nombrePhotos=fichierXML.photo.length();
var tbl_cat:Array=new Array();
//pour chaque photo,
for (var i:Number=0; i<nombrePhotos; i++)
{
//on teste dans toutes les cases du tableau si la catégorie est déjà présente
var cat:String = String(fichierXML.photo[i].@catf);
trace(cat);
var ind:int = tbl_cat.indexOf(cat,0);
trace (ind);

if (ind == -1)
{
tbl_cat.push(String(fichierXML.photo[i].@catf));
}


}
trace (tbl_cat);


Je caste tout en String pour que la méthode indexOf de la classe Array puisse repérer les noms de catégories déjà présents.

TwFlash - Développeur ActionScript3 freelance.
Mon blog : Twin Flash Blog
Mon site : TwFlash
Messages postés
58
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
7 mai 2012

tu as essayé en réduisant le fichier à deux photos et deux catégories pour voir comment ça s'articule ?


TwFlash - Développeur ActionScript3 freelance.
Mon blog : Twin Flash Blog
Mon site : TwFlash
Messages postés
112
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
17 janvier 2015

Merci, ça marche nikel :)


Je viens en effet de me rendre compte que indexOf renvoi -1 si il ne trouve rien! Pourtant j'avais lu l'aide mais ça m'avait échappé!


--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice