Frage

Hallo, ich bin neu in AS3 und ich frage mich, was der beste Weg ist, ein Kind an einem Punkt zu entfernen. Ich habe versucht,

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

Sie jedoch, dass Argument zurückgegeben: Fehler # 2025:. Die mitgelieferte Display ein Kind des Anrufers sein muss,

irgendwelche Vorschläge?

War es hilfreich?

Lösung

Die getObjectsUnderPoint () -Methode wird ein Array von Displayobjects zurück, die nicht unbedingt direkte Kinder des Halter-Objekt sein können, können sie große Kinder oder grand Kinder etc ...

sein

Sie könnten ein bedingter wie folgt festgelegt:

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

Holder.contains nicht Filter nichts, da es die Enkel auch zurückkehren ... Mein Fehler!

Andere Tipps

weiß ich nicht, warum Patrick Version funktioniert nicht. Hier ist eine Alternative (hässlich Code) Lösung, die die Eltern des Clips verwenden.

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

for each(var clip : DisplayObject in clips)
{
    clip.parent.removeChild(clip);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top