的孩子,如果im全光照功能的MC添加到舞台,像这样:AS3 stage.addChild/stage.removeChild <<必须呼叫者
var myChild:MC= new MC();
function somefunc()
{
stage.addChild(myMC)
}
但是当我尝试删除MC:
stage.removeChild(myMC)
我得到提供的DisplayObject必须是调用者错误的子... 任何建议或变通?
的孩子,如果im全光照功能的MC添加到舞台,像这样:AS3 stage.addChild/stage.removeChild <<必须呼叫者
var myChild:MC= new MC();
function somefunc()
{
stage.addChild(myMC)
}
但是当我尝试删除MC:
stage.removeChild(myMC)
我得到提供的DisplayObject必须是调用者错误的子... 任何建议或变通?
如果可能,您可以尝试隐藏并显示movieClip。 我认为它比删除和添加代码允许的情况要快一些。 请记住,这只是一个建议,有人比我更聪明,能够帮助你。
如果项目在舞台上,您的代码应该可以工作。也许,象这样一个条件语句限定它:
if (myMC.stage != null)
stage.removeChild(myMC);
另外,您可以使用下面的代码,但它可能不是最好的做法。
if (myMC.parent != null)
myMC.parent.removeChild(myMC);
它再次运作,谢谢,虽然我overmas有一个有趣的点隐藏和showin – Ric
你也可以使用此故障安全:
如果(myMC.parent)myMC.parent.removeChild(myMC);
问题不在于removeChild。这是与显示列表。如果您检查displayobject的父属性,当您调用“removeChild”时,它将为空。
它为什么会成为空可能是因为很多原因的:
我可以解决这个问题,只需删除我添加到该对象的每个EventListeners,然后再删除它。
Ric,确保你知道你在做什么,当你使一个displayobject不可见时。请阅读[本文](http://www.developria.com/2008/11/visible-false-versus-removechi.html),了解alpha,visible和removeChild之间的详细分类。 –