Actionscript 3 retirer l'enfant au point
-
09-10-2019 - |
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?
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);
}