2010-09-14 23 views
0

Je voudrais faciliter la lecture de mon code en remplaçant les longs chemins par des variables, ou quelque chose de similaire.ActionScript Remplacement des longs chemins de la liste d'affichage dans le code?

Dans mon code, je peux cibler une instance plusieurs fois, mais l'instance peut avoir un long chemin au sein de la liste d'affichage. par exemple: l'occurrence myButton peut être située sur myButtonsPanel.section2.redArea.myButton, ou quelque chose comme ça.

est-il possible de substituer ce long chemin comme variable ou constante? quelque chose comme:

var myPath = myButtonsPanel.section2.redArea; 

donc appeler l'instance serait:

myPath.myButton; 

Répondre

1

pas le chemin, mais le bouton réel

 
var myButton:MovieClip = myButtonsPanel.section2.redArea.myButton; 

bien que vous pouvez aussi le faire:

 
var myContainer:MovieClip = myButtonsPanel.section2.redArea; 

//then access your button like this 
myContainer.myButton 

Cela dépend vraiment s sur ce que vous devez faire, mais l'idée est que, au lieu de stocker un chemin, vous référencez un MovieClip directement, puis en utilisant cette variable pour accéder à ce MovieClip

+0

merci, cela fonctionne très bien. Cependant, je suis un peu surpris que seuls les MovieClips semblent fonctionner avec l'approche du conteneur et pas Sprites. Je n'utilise jamais de MovieClips car je n'utilise pas le scénario, et j'exporte mes assets IDE en tant que Sprites dans le panneau des propriétés. est-ce prévu? Pourquoi? – TheDarkIn1978

+0

Cela devrait fonctionner avec n'importe quel objet d'affichage. –

+1

@ TDI1978. Vous êtes probablement en train de faire quelque chose comme: 'var myContainer: Sprite = myButtonsPanel.section2.redArea;' et ensuite 'myContainer.myButton'. 'Sprite' est" scellé ". Ce qui signifie, il a seulement un ensemble fixe de propriétés/méthodes. Il n'y a pas de propriété 'myButton' dans' Sprite'. Ainsi, le compilateur vous donnera une erreur. Cela compile si vous tapez 'myContainer' en tant que' MovieClip', car un 'MovieClip' est' dynamique. Ainsi, les propriétés pourraient être ajoutées à l'exécution. Donc, par définition, il * pourrait * avoir une propriété myButton au moment de l'exécution et donc le compilateur ne se plaindra pas (bien que votre code pourrait juste casser à l'exécution). –