Pb création tableau par rapport à XML

Résolu
projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015 - 6 nov. 2009 à 16:42
projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015 - 7 nov. 2009 à 02:41
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

Twinspirit Messages postés 58 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 7 mai 2012
6 nov. 2009 à 22:04
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
3
Twinspirit Messages postés 58 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 7 mai 2012
6 nov. 2009 à 21:33
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
0
projer Messages postés 112 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 17 janvier 2015
7 nov. 2009 à 02:41
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
0
Rejoignez-nous