ArgumentError: Erreur # 2025: Le DisplayObject fourni doit être un enfant de l'erreur de l'appelant - AS
-
21-09-2019 - |
Question
Je cet extrait de code dans une fonction qui vérifie si un objet existe sur la scène et supprime:
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);
}
}
J'ai essayé de changer stage
avec this
et root
mais toujours obtenir ce ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller
d'erreur
La solution
Les signaux d'erreur que vous essayez de supprimer un DisplayObject
avec removeChild
qui est apparemment pas un enfant du DisplayObjectContainer
ce code est exécuté à partir.
Une façon de résoudre ce problème est de vérifier si l'objet que vous essayez de supprimer est en fait un enfant du conteneur en utilisant contains
. Vous faites cela pour quelques-uns des objets que vous enlèvement (submitButton
et saveinfoButton
), mais pas pour d'autres.
Essayez d'envelopper les appels removeChild
pour txt
, ldr.content
et _closeButton
si les déclarations qui utilisent contains
pour vérifier si ces DisplayObject
s sont dans le conteneur.
Autres conseils
Essayez avec:
e.currentTarget.parent.removeChild(txt);
e.currentTarget.parent.removeChild(ldr.content)
etc.
Essayez ceci:
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);
}
}
Vous pouvez être en mesure d'ajouter les éléments à supprimer dans le conditionnel avec &&:
if (contains(submitButton && saveinfoButton)) {