Actionscript 3 удалить ребенка в точке - PullRequest
0 голосов
/ 14 декабря 2010

Привет, я новичок в AS3, и мне было интересно, каков наилучший способ удалить ребенка в какой-то момент. я пытался

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

однако, что вернуло ArgumentError: Ошибка # 2025: предоставленный объект DisplayObject должен быть дочерним по отношению к вызывающей стороне.

есть предложения?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2010

Не знаю, почему не работает версия Patricks.Вот альтернативное (некрасивый код) решение с использованием родителя клипа.

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

for each(var clip : DisplayObject in clips)
{
    clip.parent.removeChild(clip);
}
0 голосов
/ 14 декабря 2010

Метод getObjectsUnderPoint () вернет массив объектов DisplayObject, которые не обязательно могут быть прямыми потомками вашего объекта Holder, они могут быть внуками или внуками и т. Д. ...

Вы можете установить условное выражениевот так:

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

Holder.contains ничего не фильтрует, поскольку вернет и внуков ... Моя ошибка!

...