Création d'occurrence de clip par une boucle --> aS3

Résolu
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour,
voilà, je cherche un moyen d'appeler les occurrences de clips dans une boucle.
L'idée est de créer un menu qui dépend d'un XML dont je ne sais pas le nombre d'élément.
J'ai essayé :
for(var i : int=0 ; i<liste.length ; i++){
var boutSm[i] : BoutSousMenu = new BoutSousMenu();
trace(boutSm[i]);
}
Et d'autre trucs... mais rien ne fonctionne.
Le problème tient au "nommage" des boutons, et je ne sais pas comment m'y prendre (j'ai aussi essayé "boutSm"+i mais ça n'a pas plus de résultats). Je ne vois pas par quel bout prendre le problème. Si quelqu'un a une idée. Merci d'avance.


Tout vient à qui sait attendre

3 réponses

Messages postés
6138
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
11
Bonjour,

Une autre solution est de placer tes "BoutSousMenu" dans un tableau à l'aide d'un push et de les appeller l'un après l'autre sans devoir faire "getChildByName" à chaque fois.
C'est plus propre, plus pratique et techniquement plus rapide question instruction, car tu ne fais pas appel à la liste d'affichage d'un DisplayObjectContainer.

Peg'
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Bonjour,
j'ai trouvé une piste ici grâce à pegase31 :
for(var i : int=0 ; i<liste.length ; i++){
var boutSm : BoutSousMenu = new BoutSousMenu();
boutSm.name="boutSm"+i;
trace(boutSm.name);
}
Je reviendrais vers vous si j'ai des difficulté. Désolé pour le dérangement


Tout vient à qui sait attendre
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Merci, tu as raison, c'est plus propre, et puis j'aime pas trop utiliser le "getChildByName".
Donc pour ceux que cela intéresse, cela donne :

for(var i : int=0 ; i<liste.length ; i++){
var boutSm : BoutSousMenu = new BoutSousMenu();
conteneur.push(boutSm);
porteur.addChild(conteneur[i]);
conteneur[i].leTitre.text = liste[i].nom;
conteneur[i].leTitre.mouseEnabled = false;
conteneur[i].buttonMode=true;
conteneur[i].id = i;
conteneur[i].y = i*20;
}
Encore merci... que serions-nous sans toi !

Tout vient à qui sait attendre