2009-01-31 6 views

Répondre

1

Puis-je demander ce qu'il est que vous essayez de faire, en termes plus généraux?

Si vous voulez juste pour éviter les erreurs de référence null, il suffit de cocher la référence (variable) que vous utilisez pour null:

if (_myComponent != null) 
{ 
    // add listeners 
} 

Si pour une autre raison que vous avez vraiment besoin de savoir si le composant a été initialisé avant de faire cela, vous avez besoin d'envoyer une sorte d'événement (Flex UIComponents envoi FlexEvent.INITIALIZE événements, mais je suppose que vous ne l'utilisez Flex) ou bien définir une propriété « initialisé », que je ne suis pas si sûr les composants flash standard font (je regarde the Button documentation pour référence ici.) vous pouvez bien sûr faire une sous-classe personnalisée de composant que vous nous pour vous-même où vous implémentez une propriété initialized, mais je ne suis pas sûr de la façon dont vous pourriez l'implémenter pour l'un des composants Flash standard. Je suis pas tout à fait sûr de ce que vous entendez par « initialisation » dans ce contexte :)

0

Peut-être quelque chose comme ça?

if (mcWithComponents.stage) doStuff(); 
mcWithComponents.addEventListener(Event.ADDED_TO_STAGE, doStuff); 

private function doStuff(e:Event = null):void 
{ 
    mcWithComponents.myButton.addEventListener(MouseEvent.CLICK, buttonClicked); 
} 

Ou ajoutez l'écouteur directement dans la classe du MovieClip.

public function mcWithComponents() // constructor 
{ 
    if (stage) init(); 
    addEventListener(Event.ADDED_TO_STAGE, init); 
} 
private function init(e:Event = null):void 
{ 
    myButton.addEventListener(MouseEvent.CLICK, buttonClicked); 
} 
Questions connexes