2010-02-24 8 views
1

Dire que j'ai le code dans mon principal MXML et dans une fonction comme ceci:Comment accéder à la racine dans Flex3/AS3?

this.addChild(someContainer); 

et maintenant je veux factoriser le code et déplacer ce à sa propre classe et de méthode dans un fichier séparé. Comment pourrais-je accéder à la racine maintenant, puisque cela pointe maintenant clairement vers la nouvelle classe que j'ai créée.

+0

vous souhaitez qu'un enfant s'ajoute à son parent? C'est impossible .. – Pbirkoff

Répondre

2

Vous pouvez utiliser quelque chose comme Application.application, Application.root ou d'un événement this.root (selon vos besoins)

Mais je would'nt conseiller (essayer de factoriser votre code afin que vous puissiez passer un référence à votre main ou quelque chose comme ça ...).

La question est la suivante: votre classe nouvellement créée sera-t-elle responsable de l'ajout d'enfants aux composants? Alors je vous suggérerais à la place de faire passer une référence à n'importe quel type de conteneur; et dans votre mxml principal, vous passez la référence à la racine.

Il se peut aussi que la nouvelle classe ne soit responsable que de l'exposition des choses à ajouter; Dans ce cas, vous pourriez probablement laisser le code "this.addChild (...)" dans le main.

En espérant que cela aide.

+0

J'ai essayé de passer cela de Main dans le constructeur de classe pour le mettre en cache et l'utiliser à partir de là, mais je n'ai pas pu accéder à addChild à partir de là. Application.application.addChild semble faire l'affaire. – Keyframe

+0

Vous avez raison, je pense que j'ai mélangé Application.application, Application.root et this.root ... Je vais corriger ma réponse. – phtrivier

Questions connexes