2017-05-24 3 views
0

J'ai deux scènes. Dans la scène 1, il y a un script qui ajoute automatiquement un enfant en utilisant addChild(nameObject);, il y a aussi un bouton aller à la scène suivante.Vérifiez si un enfant existe

Lorsque je reviens de la scène 2 à la scène 1, le code génère un autre objet. Comment puis-je créer un script AS3 qui vérifie si l'enfant existe déjà sur la scène?

+2

'contient (nameObject)'? http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#contains() – 3vilguy

Répondre

2

Vous cherchez plus probablement pour la méthode contains() d'un DisplayObjectContainer:

Détermine si l'objet d'affichage spécifié est un enfant de l' DisplayObjectContainer instance ou l'instance elle-même. La recherche inclut la liste entière d'affichage comprenant cette instance DisplayObjectContainer . Petits-enfants, arrière-petits-enfants et ainsi de suite chaque retour true.

if (!contains(nameObject)) { 
    // the object is not a child of the container 
    addChild(nameObject); 
} 
+1

Ceci est une bonne réponse, mais je suggère (puisque le parent potentiel est connu), qu'il serait plus efficace de faire simplement 'if (nameObject.parent! = this)' car alors vous ne faites pas de recherche récursive sur tous les enfants. – BadFeelingAboutThis

+0

@BadFeelingAboutThis Il ne fonctionne pas, l'objet continue à ajouter à la scène – Jack