Flex 3 Erreur # 2025 lors de l'utilisation removeChild
-
28-09-2019 - |
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
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.