Question

Salut je suis nouveau AS3 et je me demandais quelle est la meilleure façon d'enlever un enfant à un point. i essayé

Holder.removeChild(Holder.getObjectsUnderPoint(new Point(exampleX, exampleY))[0]);

mais qui a renvoyé ArgumentError: Error # 2025:. Le DisplayObject fourni doit être un enfant de l'appelant

suggestions?

Était-ce utile?

La solution

La méthode getObjectsUnderPoint () retourne un tableau de DisplayObjects qui ne sont pas nécessairement les enfants directs de votre objet Holder, ils peuvent être grands enfants ou petits-enfants, etc ...

vous pouvez définir une condition comme ceci:

var objects:Array =  Holder.getObjectsUnderPoint( yourPoint );
for each( var child:DisplayObject in objects )
{
    if( child.parent == Holder )
       Holder.removeChild( child ) ;
}

Holder.contains ne rien filtre car il retournera les ... petits-enfants ainsi mon erreur!

Autres conseils

Je ne pas savoir pourquoi la version Patricks ne fonctionne pas. Voici une solution de rechange (code laid) en utilisant le parent du clip.

var clips : Array =  _container.getObjectsUnderPoint(_point);

for each(var clip : DisplayObject in clips)
{
    clip.parent.removeChild(clip);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top