使用以下代码..
var testContainer = new Sprite();
addChild(testContainer);
var testSprite = new Sprite();
testSprite.name = "sim":
testContainer.addChild(testSprite);
我对以下调用返回子null错误的原因感到有点困惑:
testContainer.removeChild(getChildByName("sim"));
然而,以下代码没有,实际上完全符合预期:
with(testContainer)
{
removeChild(getChildByName("sim"));
}
任何人都可以对此有所了解,因为我假设当你没有使用with
投射引用时,它只是为你提供的任何函数调用添加前缀。
答案 0 :(得分:3)
您必须从容器中调用removeChild,如下所示。 testContainer.removeChild(testContainer.getChildByName("sim"));
答案 1 :(得分:1)
您可以用作顶级方法的通用实现:
function removeChildFromParent(d:DisplayObject):DisplayObject {
if (!d || !d.parent) return d;
return d.parent.removeChild(d);
}