2009-05-19 8 views
0

J'ai essayé d'accéder aux boutons de mon menu. Je veux seulement ajouter des écouteurs aux articles qui sont dans le chargement du fichier XML. La chose est, je ne sais pas comment appeler un bouton que j'ai appelé "Var1_btn" quand j'ai une chaîne "Var1".ActionScript 3 boutons d'appel dynamique

Est-ce que quelqu'un sait comment appeler les boutons à partir d'une boucle for?

for each(var chapter in presentation_xml.*) 
{ 
    chapter + "_btn".addEventListener(MouseEvent.MOUSE_DOWN, traceit); 
} 

est ce que je suis venu avec ...

Répondre

1

En supposant que vous chargez le fichier XML dans une variable appelée presentationXML, il est comme ça:

for each(var chapter in presentationXML.*) 
{ 
    this[chapter + "_btn"].addEventListener(MouseEvent.MOUSE_DOWN, traceit); 
} 
+0

Merci beaucoup! C'est ce que j'ai fait! – kentos

0

DisplayObjectContainer :: getChildByName()

1

Vous pouvez utiliser:

for each(var chapter in presentation_xml.*) 
{ 
    this[chapter + "_btn"].addEventListener(MouseEvent.MOUSE_DOWN, traceit); 
} 

mais vous pouvez également utiliser getChildByName, comme ceci:

for each(var chapter in presentation_xml.*) 
{ 
    var myBtn:MovieClip = getChildByName(chapter + "_btn"); 
    myBtn.addEventListener(MouseEvent.MOUSE_DOWN, traceit); 
} 

est ici un bon poste sur when to use getChildByName.

0

Mieux utiliser chapter.toString().

Le même effet, mais d'autres codeurs le liront et comprendront, que le chapitre est en train d'être converti de XML vers sa représentation sous forme de chaîne lorsqu'il est concaténé avec un littéral de chaîne.

Questions connexes