嗨,我是AS3的新手,我想知道在一个点上移除一个孩子的最佳方法是什么。 我试过了
Holder.removeChild(Holder.getObjectsUnderPoint(new Point(exampleX, exampleY))[0]);
但是返回了ArgumentError:错误#2025:提供的DisplayObject必须是调用者的子节点。
有什么建议吗?
答案 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);
}