Actionscript 3 bambini remove al punto
-
09-10-2019 - |
Domanda
ciao io sono nuovo di AS3 e mi chiedevo che cosa è il modo migliore per rimuovere un bambino in un punto. Ho provato
Holder.removeChild(Holder.getObjectsUnderPoint(new Point(exampleX, exampleY))[0]);
, tuttavia, che ha restituito ArgumentError: Error # 2025:. Il DisplayObject fornito deve essere un elemento secondario del chiamante
qualche suggerimento?
Soluzione
Il metodo getObjectsUnderPoint () restituisce un array di DisplayObjects che potrebbero non essere necessariamente i figli diretti del vostro oggetto Holder, essi possono essere nipoti o nipoti nipoti etc ...
È possibile impostare un condizionale in questo modo:
var objects:Array = Holder.getObjectsUnderPoint( yourPoint );
for each( var child:DisplayObject in objects )
{
if( child.parent == Holder )
Holder.removeChild( child ) ;
}
Holder.contains non filtra nulla dal momento che restituirà i nipoti così ... Il mio errore!
Altri suggerimenti
Non lo so il motivo per cui la versione Patricks non funziona. Ecco una soluzione alternativa (codice brutto) con il genitore del clip.
var clips : Array = _container.getObjectsUnderPoint(_point);
for each(var clip : DisplayObject in clips)
{
clip.parent.removeChild(clip);
}