【问题标题】:Actionscript 3 addChild ignored every second attemptActionscript 3 addChild 忽略了每一秒的尝试
【发布时间】:2018-02-17 09:45:20
【问题描述】:

我正在Actionscript 开发一款游戏,下面的代码包含在一个检查键盘上是否按下某个键的函数中。您可以忽略所有其他变量,因为唯一重要的是“OrbRing”,这是一个从库中加载的影片剪辑。

当按下TAB 键时,屏幕上的条形长度会减少一定的量,并且屏幕上会出现一个圆环。第一次尝试时,一切正常:圆环出现,条形长度缩短。

但是,次尝试此操作时,条形长度会减少,但 OrbRing 不会出现。

奇怪的是,第三次尝试此操作后,一切又恢复正常,就像第一次一样。

但随后第四次,问题与第二次尝试相同。

因此,每次偶数尝试,addChild 代码似乎都被忽略了,但该函数仍在运行,因为条形长度每次都会减小。并且每一次奇怪的尝试,该功能都会正常执行。

我不知道为什么会这样,也没有收到任何错误消息。任何可能解决此问题的帮助或想法将不胜感激。

if(levelseven==true) {
    if (mykey.keyCode==Keyboard.TAB) {
        if(gear1==true && CPUBAR1_mc.CPUBARYLW_mc.width>=215) {

            CPUBAR1_mc.CPUBARYLW_mc.width-=215;
            addChild(OrbRing);
            OrbRing.x=Orb_mc.x;
            OrbRing.y=Orb_mc.y;
            OrbRing.gotoAndPlay(1);     
        }
    }
}

【问题讨论】:

  • 您是否检查过您是否甚至使用跟踪命中条件?我的第一个假设是,要么 gear1 为假,要么该 Movieclip 的宽度低于 215。
  • 这里需要更多上下文。我需要查看所涉及的功能以进一步提供帮助。
  • 通过什么是可读的代码就可以了。检查条件,因为第二次、第四次等,您甚至可能无法到达 addChild。在每个 if 语句之后添加一个跟踪,并了解执行的内容。
  • 我可以确认 'if' 语句正在运行并且所有条件都得到满足,因为当 'if' 语句运行时,它应该减少舞台上的影片剪辑的宽度,如这行代码“CPUBAR1_mc.CPUBARYLW_mc.width-=215;”所示。在第二次和第四次尝试(即“问题”尝试)时,影片剪辑宽度的减小仍然会发生,但 addChild 命令不会。这确认了“if”语句的条件已经满足,它只是忽略了 addChild 命令。
  • 这很奇怪,如果addChild语句有问题就会触发错误。其他可能性可能是内容或容器剪辑的 alpha 为 0,或可见为 false,或宽度/高度为 0。

标签: actionscript-3 flash addchild


【解决方案1】:

我找到了解决方案。无论出于何种原因(我仍然不知道为什么),每次偶数尝试时,影片剪辑都会卡在第一帧。只需添加一个 gotoAndPlay(2);指令确保每次播放电影剪辑。非常感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2011-06-07
    • 1970-01-01
    • 2010-12-16
    • 2011-02-23
    • 1970-01-01
    • 2022-01-12
    • 2014-10-13
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多