我用AS3制作了一个游戏,你必须在它们爆炸并摧毁墙壁之前点击坠落的炸弹。现在,我试图移除当墙被摧毁时坠落的炸弹,所以我在游戏中对功能进行了removeChild(blob)
,因为这些炸弹被添加到舞台上{{1} },我一直收到这个错误:
ArgumentError:错误#2025:提供的DisplayObject必须是调用者的子级。 ......第80行
......顺便说一句,我已经尝试过这样的事情:
addChild(blob)
或
this.parent.removeChild(this);
或
blob.parent.removeChild(blob);
但我仍然得到同样的错误。
这是我的代码:
stage.removeChild(blob);
答案 0 :(得分:2)
var name blob一次只能引用一个特定的Blob对象。 每次创建新Blob时,都会将名称blob重新分配给最后创建的Blob,而不会丢失对前一个名称的引用。
该错误表示,在您调用removeChild时,分配给名称的特定Blob" blob"不是孩子,它不在显示列表中。
因此它引用了错误的Blob或已从显示列表中删除。
为避免错误,您还可以说if(blob.parent)删除子blob
之类的内容