ArgumentError: Error # 2025: Il DisplayObject fornito deve essere un figlio dell'errore chiamante - AS

StackOverflow https://stackoverflow.com/questions/2492036

Domanda

Ho questo frammento di codice all'interno di una funzione che controlla se un oggetto esiste sul palco e lo rimuove:

public function closeContent(e:MouseEvent):void { 
    removeChild(txt);
    removeChild(ldr.content);
    removeChild(_closeButton);
    container_mc.visible = false;
    statusText.text="";
    if (contains(submitButton)) {
        removeChild(submitButton);
    }
    if (contains(saveinfoButton)) {
        removeChild(saveinfoButton);
    }
}

Ho provato a cambiare stage con this e root ma sempre ottenere questo ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller errore

È stato utile?

Soluzione

I segnali di errore che si sta tentando di rimuovere un DisplayObject con removeChild che a quanto pare non è un figlio del DisplayObjectContainer questo codice viene eseguito da.

Un modo per risolvere questo problema è quello di verificare se l'oggetto che si sta tentando di rimuovere è in realtà un bambino del contenitore utilizzando contains. Si sta facendo questo per alcuni degli oggetti che si sta rimuovendo (submitButton e saveinfoButton), ma non per altri.

Provare avvolgendo le chiamate removeChild per txt, ldr.content e _closeButton se le istruzioni che utilizzano contains per verificare se queste DisplayObjects trovano nel contenitore.

Altri suggerimenti

Prova con:

e.currentTarget.parent.removeChild(txt);  
e.currentTarget.parent.removeChild(ldr.content)  
etc.

Prova questo:

public function closeContent(e:MouseEvent):void { 
    removeChild(txt);
    removeChild(ldr.content);
    removeChild(_closeButton);
    container_mc.visible = false;
    statusText.text="";
    if (contains(submitButton)) {
        removeChild(submitButton);
        removeChild(saveinfoButton);
    }
}

Si può essere in grado di aggiungere due elementi per la rimozione al condizionale con &&:

    if (contains(submitButton && saveinfoButton)) {
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top