Actionscript 3移除了孩子

时间:2010-12-14 03:44:49

标签: actionscript-3 removechild displayobject

嗨,我是AS3的新手,我想知道在一个点上移除一个孩子的最佳方法是什么。 我试过了

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

但是返回了ArgumentError:错误#2025:提供的DisplayObject必须是调用者的子节点。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

getObjectsUnderPoint()方法将返回一个DisplayObjects数组,它可能不一定是你的Holder对象的直接子元素,它们可能是盛大的孩子或盛大的孩子......等等。

您可以像这样设置条件:

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

Holder.contains不会过滤任何东西,因为它也会返回grandChildren ......我的错误!

答案 1 :(得分:0)

我不知道为什么Patricks版本不起作用。这是使用剪辑的父级的替代(丑陋代码)解决方案。

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

for each(var clip : DisplayObject in clips)
{
    clip.parent.removeChild(clip);
}