0

使用以下代码..

var testContainer = new Sprite();
addChild(testContainer);

var testSprite = new Sprite();
testSprite.name = "sim":
testContainer.addChild(testSprite);

我对为什么以下调用返回子空错误有点困惑:

testContainer.removeChild(getChildByName("sim"));

然而,下面的代码并没有,而且实际上完全按照预期工作:

with(testContainer)
{
  removeChild(getChildByName("sim"));
}

任何人都可以对此有所了解,正如我所假设的那样,当您不使用with它进行引用时,只需在您提供的任何函数调用前面加上它。

4

2 回答 2

3

您必须从容器中调用 removeChild,如下所示。 testContainer.removeChild(testContainer.getChildByName("sim"));

于 2012-10-09T10:59:16.160 回答
1

您可以用作顶级方法的通用实现:

function removeChildFromParent(d:DisplayObject):DisplayObject {
  if (!d || !d.parent) return d;

  return d.parent.removeChild(d);
}
于 2012-10-09T11:07:44.497 回答