【问题标题】:Remove Child AS3删除子 AS3
【发布时间】:2014-01-28 00:05:20
【问题描述】:

我正在尝试删除子影片剪辑,但总是出错。我已经尝试了不同的方法,但没有任何效果。

这是我的打印屏幕。我要删除的 Movieclip 是movieclip playerPaddle 内的movieclip1。

请帮忙。

我要删除的代码:

if(playerPaddle.movieclip1.hitTestObject(ball)){
                        playerPaddle.movieclip1.removeChild(movieclip1);

}

错误信息: 显示全部关闭或继续的对话框 - 无法将 movieclip1$ 转换为 flash.display.DisplayObject

【问题讨论】:

  • 你确定movieclip1 是一个影片剪辑吗?

标签: actionscript-3 removechild


【解决方案1】:

如果我理解正确,您正在尝试从 playerPaddle 对象中删除movieclip1。

为此,您必须调用:

if(playerPaddle.movieclip1.hitTestObject(ball)){
                    playerPaddle.removeChild(playerPaddle.movieclip1);

}

那是因为 playerPaddle 是 movieclip1 的父对象,因此在父对象上调用 removeChild 将完美地工作。

【讨论】:

  • 正确 - 下面的人是正确的。我的解决方案有小错误。寻址movieclip1 必须使用父母的名字。除非您声明一个名为movieclip1 的变量,该变量包含对嵌套movieclip 的引用:)。
【解决方案2】:

虽然 Kuba 的回答对您提供的代码提出了问题,但我认为您现在面临的问题是作为参数传递给 playerPaddle.movieclip1.removeChild(...) 的 movieclip1 对象不是影片剪辑1。如果我不得不冒险猜测,它很可能是空的。

你可以试试:

if(playerPaddle.movieclip1.hitTestObject(ball))
{
    playerPaddle.removeChild(playerPaddle.movieclip1);
}

(我也包含了 Kuba 的建议)。

【讨论】:

    【解决方案3】:

    以下内容可能对您有所帮助

    if(this.parent) this.parent.removeChild(this);
    

    您可以将this 替换为正确的孩子并获得相同的结果。喜欢:

    if(ball.parent) ball.parent.removeChild(ball);
    

    【讨论】:

      【解决方案4】:

      Kuba 几乎是正确的,但movieclip1 不在范围内。您仍然需要指向属于 playerPaddle 的对象movieclip1。

      if(playerPaddle.movieclip1.hitTestObject(ball))
      {
          playerPaddle.removeChild(playerPaddle.movieclip1);
      }
      

      【讨论】:

        【解决方案5】:

        如果您移除孩子,您还需要移除正在监听孩子的 EventListener。如果您删除子对象并且事件侦听器仍在检查它,您将收到错误消息。您可以将函数嵌套在这样的检查语句中

            if(playerPaddle)
            {
                if(playerPaddle.movieclip1.hitTestObject(ball))
                {
                    playerPaddle.removeChild(playerPaddle.movieclip1);
                }
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-04
          • 2013-08-11
          • 2013-10-11
          • 1970-01-01
          • 2012-05-25
          • 1970-01-01
          相关资源
          最近更新 更多