AS3'带'和'removeChild'语法

时间:2012-10-09 10:50:30

标签: actionscript-3

使用以下代码..

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投射引用时,它只是为你提供的任何函数调用添加前缀。

2 个答案:

答案 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);
}