Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 父级在3时突然变为空_Actionscript 3 - Fatal编程技术网

Actionscript 3 父级在3时突然变为空

Actionscript 3 父级在3时突然变为空,actionscript-3,Actionscript 3,几个月前我刚学会了AS3,如果你觉得这听起来很新鲜,我很抱歉 这是我的问题。我使用了removeChild,但出现了一个错误,错误是: ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象 因此,我跟踪了父对象,结果是“null”。但当我试图追踪我拥有的每一个对象的父对象时,结果都很好。那为什么它突然变为空呢?而且是随机的!你知道怎么纠正这个吗?谢谢。在给removeChild打电话之前,您是否在任何地方使用过addChild 子项应位于调用re

几个月前我刚学会了AS3,如果你觉得这听起来很新鲜,我很抱歉

这是我的问题。我使用了removeChild,但出现了一个错误,错误是: ArgumentError:Error#2025:提供的DisplayObject必须是调用者的子对象


因此,我跟踪了父对象,结果是“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 );