Actionscript 3 父级在3时突然变为空
几个月前我刚学会了AS3,如果你觉得这听起来很新鲜,我很抱歉 这是我的问题。我使用了removeChild,但出现了一个错误,错误是: ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象Actionscript 3 父级在3时突然变为空,actionscript-3,Actionscript 3,几个月前我刚学会了AS3,如果你觉得这听起来很新鲜,我很抱歉 这是我的问题。我使用了removeChild,但出现了一个错误,错误是: ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象 因此,我跟踪了父对象,结果是“null”。但当我试图追踪我拥有的每一个对象的父对象时,结果都很好。那为什么它突然变为空呢?而且是随机的!你知道怎么纠正这个吗?谢谢。在给removeChild打电话之前,您是否在任何地方使用过addChild 子项应位于调用re
因此,我跟踪了父对象,结果是“null”。但当我试图追踪我拥有的每一个对象的父对象时,结果都很好。那为什么它突然变为空呢?而且是随机的!你知道怎么纠正这个吗?谢谢。在给removeChild打电话之前,您是否在任何地方使用过addChild 子项应位于调用removeChild的父项的显示列表中
只要父项不在舞台上,它就始终为空。仅供参考,我认为您有一个小错误 下面的代码是相同的错误 ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象 这是你的案子
var mc:MovieClip = new MovieClip();
addChild(mc);
var childMc:MovieClip = new MovieClip();
mc.addChild(childMc);
//this line wrong.
stage.removeChild(childMc);
如果您是case,stage.removeChild(childMc)代码>更改为mc.removeChild(childMc)代码>
表示从DisplayObjectContainer实例的子列表中删除指定的子DisplayObject实例。作为parent.removeChild(子级)代码>
stage
是childMc
父级的父级
mc
是childMc
parent
还是这个案子
var mc:MovieClip = new MovieClip();
addChild(mc);
var childMc:MovieClip = new MovieClip();
mc.addChild(childMc);
stage.removeChild(mc);
while(mc.numChildren)
{
mc.removeChildAt(0);
}
如果在这种情况下,mc将通过以下行删除stage.removeChild(mc)代码>
试图将mc child从child移除。已删除mc,因此发生错误。必须从最下面的位置删除子项
改为
while(mc.numChildren)
{
mc.removeChildAt(0);
}
stage.removeChild(mc);
如果你想清楚的回答。必须附加代码。以下是我如何防范错误的方法#2025:
但一般来说,请确保只删除您以前添加的DisplayObjects。如果您想在不记住其父对象的情况下随意删除子对象,可以执行以下操作:
if( child.parent ) child.parent.removeChild( child );
if( child.parent ) child.parent.removeChild( child );