AS3 stage.addChild/stage.removeChild <<必须是来电者的孩子

1 displayobject actionscript-3 addchild removechild

如果我正在使用功能将mc添加到舞台,如下所示:

var myChild:MC= new MC();

function somefunc()
{
   stage.addChild(myMC)
}
Run Code Online (Sandbox Code Playgroud)

但当我尝试删除mc时:

stage.removeChild(myMC)
Run Code Online (Sandbox Code Playgroud)

我得到提供的DisplayObject必须是调用者错误的孩子...任何建议或解决方法?

Nat*_*ith 6

如果项目在舞台上,您的代码应该有效.也许用这样的条件语句来限定它:

if (myMC.stage != null)
   stage.removeChild(myMC);
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用以下代码,但这可能不是最佳做法.

if (myMC.parent != null)    
   myMC.parent.removeChild(myMC);
Run Code Online (Sandbox Code Playgroud)