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?

È stato utile?

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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top