【发布时间】: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