Flex 3 Errore # 2025 quando si utilizza removeChild
-
28-09-2019 - |
Domanda
sto diventando un Flex ArgumentError: Error # 2025:. Il DisplayObject fornito deve essere un elemento secondario del chiamante
Questo è quello che ho:
a) ho impostato la variabile lastButtonClicked per l'ultimo pulsante che è stato cliccato in app principale.
private var lastButtonClicked:DisplayObject;
private function lastButtonClickedFunction(event:MouseEvent):void {
lastButtonClicked = event.currentTarget as DisplayObject;
}
b) Ho un TitleWindow aperta e c'è un sì / no l'opzione. Ho un evento personalizzato tornare la risposta alla applicazione principale.
c) l'applicazione principale, sto cercando di rimuovere lastButtonClicked basata sui dati inviati dal evento personalizzato. Quindi, il mio problema è in questa funzione. Per qualche motivo non mi permette di rimuovere il pulsante. Ottengo l'errore 2025, invece.
private function answerHandler( event:AnswerEvent ):void {
if(event.answerCorrect == true){
removeChild(lastButtonClicked);
}
}
Qualche suggerimento su come eseguire il debug di questo problema? L'evento personalizzato sta sparando bene. Come posso risolvere questa linea: removeChild (lastButtonClicked); ?
Edit: Ho provato hbox1.removeChild (lastButtonClicked) e ha funzionato. Il pulsante corretto è stato rimosso dal l'applicazione principale. Il problema è che non tutti i pulsanti sono in hBox1. Ho altre hbox. Così, ho bisogno di trovare un modo più generico invece di usare hBox1 nella dichiarazione. I this.removeChild stanco (lastButtonClicked), ma non ha funzionato. Grazie.
Grazie.
-Laxmidi
Soluzione 2
ho risolto. Ho fatto una variabile e impostarla al genitore di lastButtonClicked.
private var mioGenitore: Object; mioGenitore = lastButtonClicked.parent;
Poi nel mio answerHandler ho scritto:
myParent.removeChild (lastButtonClicked);
Grazie.
-Laxmidi
Altri suggerimenti
Da quanto ho capito, sembra che si hanno i pulsanti in un TitleWindow
e il gestore di eventi nell'applicazione. Probabilmente si desidera chiamare removeChild
per l'istanza di TitleWindow
(ad es: titleWindow.removeChild(lastButtonClicked)
), piuttosto che dall'applicazione.