Argumenterror: Error # 2025: Die mitgelieferte Display muss ein Kind des Anrufers Fehler sein - AS
-
21-09-2019 - |
Frage
Ich habe diesen Code-Schnipsel in einer Funktion, dass überprüft, ob ein Objekt auf der Bühne vorhanden ist und entfernt ich:
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);
}
}
Ich habe versucht, stage
mit this
und root
zu ändern, aber immer diese Fehlermeldung erhalten ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller
Lösung
Die Fehlersignale, dass Sie versuchen, eine DisplayObject
mit removeChild
zu entfernen, dass offenbar kein Kind des DisplayObjectContainer
dieser Code aus ausgeführt wird.
Eine Möglichkeit, dieses Problem zu lösen, ist zu prüfen, ob das Objekt, das Sie entfernen möchten eigentlich ein Kind des Behälters ist mit contains
. Sie sind dies der Objekte für einige tun Sie (submitButton
und saveinfoButton
) entfernt werden soll, nicht aber für einige andere.
Versuchen Sie, die removeChild
fordert txt
, ldr.content
und _closeButton
in if-Anweisungen Einwickeln, dass die Verwendung contains
zu prüfen, ob diese DisplayObject
s im Behälter sind.
Andere Tipps
Versuchen Sie, mit:
e.currentTarget.parent.removeChild(txt);
e.currentTarget.parent.removeChild(ldr.content)
etc.
Versuchen Sie diese:
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);
}
}
Unter Umständen können Sie beiden Elemente zum Entfernen der bedingten hinzufügen mit &&:
if (contains(submitButton && saveinfoButton)) {