Question

Je reçois Flex ArgumentError: Error # 2025:. Le DisplayObject fourni doit être un enfant de l'appelant

Voici ce que j'ai:

a) Je mis la variable lastButtonClicked au dernier bouton qui a été cliqué dans l'application principale.

private var lastButtonClicked:DisplayObject;

    private function lastButtonClickedFunction(event:MouseEvent):void {
        lastButtonClicked = event.currentTarget as DisplayObject;

    }

b) J'ai un TitleWindow ouvert et il y a un oui / non option. J'ai un événement personnalisé retourner la réponse à l'application principale.

c) Dans l'application principale, je suis en train de supprimer lastButtonClicked basée sur les données envoyées par l'événement personnalisé. Donc, mon problème est dans cette fonction. Pour une raison quelconque, il ne me laisse pas supprimer le bouton. J'obtiens l'erreur 2025 à la place.

private function answerHandler( event:AnswerEvent ):void {
        if(event.answerCorrect == true){
            removeChild(lastButtonClicked);
        }
    }

Toutes les suggestions sur la façon de déboguer ce problème? L'événement personnalisé tire bien. Comment puis-je résoudre cette ligne: removeChild (lastButtonClicked); ?

Edit: J'ai essayé hbox1.removeChild (lastButtonClicked) et cela a fonctionné. Le bouton approprié a été retiré de l'application principale. Le problème est que tous les boutons sont en hBox1. J'ai d'autres hbox. , Je dois ainsi trouver un moyen plus générique au lieu d'utiliser hBox1 dans la déclaration. Je this.removeChild fatigué (lastButtonClicked), mais cela n'a pas fonctionné. Merci.

Merci.

-Laxmidi

Était-ce utile?

La solution 2

Je l'ai résolu. J'ai fait une variable et le mettre à la mère de lastButtonClicked.

var MonParent privé: Object; MonParent = lastButtonClicked.parent;

Alors dans mon answerHandler je l'ai écrit:

myParent.removeChild (lastButtonClicked);

Merci.

-Laxmidi

Autres conseils

D'après ce que je comprends, il semble que vous avez les boutons dans un TitleWindow et le gestionnaire d'événements dans l'application. Vous voulez probablement appeler removeChild pour l'instance de TitleWindow (par exemple: titleWindow.removeChild(lastButtonClicked)) plutôt que de l'application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top