嗨,我是 AS3 的新手,我想知道在某个时间点移除孩子的最佳方法是什么。我试过
Holder.removeChild(Holder.getObjectsUnderPoint(new Point(exampleX, exampleY))[0]);
但是返回的 ArgumentError: Error #2025: 提供的 DisplayObject 必须是调用者的子对象。
有什么建议么?
嗨,我是 AS3 的新手,我想知道在某个时间点移除孩子的最佳方法是什么。我试过
Holder.removeChild(Holder.getObjectsUnderPoint(new Point(exampleX, exampleY))[0]);
但是返回的 ArgumentError: Error #2025: 提供的 DisplayObject 必须是调用者的子对象。
有什么建议么?
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 ......我的错误!
我不知道为什么帕特里克版本不起作用。这是使用剪辑父级的替代(丑陋代码)解决方案。
var clips : Array = _container.getObjectsUnderPoint(_point);
for each(var clip : DisplayObject in clips)
{
clip.parent.removeChild(clip);
}