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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top