Eh bien, on dirait que vous faites quelque chose de vilain ici. En raison de la non déclaration de listText dans la fonction levelsBG, il semble que cette dernière doit être déclarée en dehors de la classe, et vous écrasez une référence à cet objet à chaque itération de votre boucle, la seule qui existe à la fin, est le tout dernier objet créé.
Ensuite, dans votre gestionnaire d'événements, vous parcourez l'arborescence d'affichage jusqu'à la classe dans laquelle cette référence existe et tracez le texte de celle-ci, de sorte que l'apparence est qu'elles sont toutes les mêmes.
Si votre intention est de tracer la propriété 'text' d'un champ de texte donné que vous avez nommé listText, vous devrez faire les choses différemment. Cet extrait devrait fonctionner, mais vous voudrez peut-être revoir votre compréhension de la façon dont les membres de la classe fonctionnent et peuvent être traités, par opposition aux enfants DisplayObjects?
private function levelsBG():void {
for (var i:Number=0; i<myXML.children().length(); i++) {
listText=new TextField ;
listMC=new MovieClip ;
listText.text=myXML.MEMBER[i][email protected];
listText.name = "listText";
listMC.buttonMode=true;
listMC.mouseChildren=false;
listMC.addChild(listText);
addChild(listMC);
listMC.addEventListener(MouseEvent.MOUSE_OVER,listOver);
}
}
private function listOver(e:MouseEvent):void {
trace(e.target.getChildByName("listText").text);
}
}
i avait le mc.x = largeur * i type de là script, mais semble que chaque ListText utilise listMC comme support au lieu de listMC – Hwang
séparés sont-ils tous les champs de texte affiché à différents endroits? – Amarghosh
yup. après quelques recherches et des dures ma question correcte serait comment rendre un bouton duplicable fonctionnable individuellement? – Hwang