【发布时间】:2016-03-31 22:00:04
【问题描述】:
它应该是一个节奏游戏,当 mc 在舞台上时,布尔值不断地从 true 到 flash 来回切换,你必须在正确的时间抓住它。但我不断收到错误...
while (theBeat)
{
if (theBeat.currentFrame < 5)
{
onBeat = true
trace(onBeat)
}
if (theBeat.currentFrame > 5)
{
onBeat = false
trace(onBeat)
}
}
给我:
1502脚本已执行超过 15 秒。
【问题讨论】:
-
在黑暗中射击:你的 while 循环永远不会停止,ui 线程被阻塞超过 15 秒,bam 错误 1502 别名“执行时间错误”。尝试改用 ENTER_FRAME 处理程序重写您的代码。
-
所以每次我想要布尔值切换时我都必须纠正一个 ENTER_FRAME 函数?那会很痛苦。
-
@Galbert,没有 ENTER_Frame 替换了 While 循环。制作一个输入帧侦听器并将两个 IF 语句放在那里(最好删除跟踪 cos enter Frame 运行每个 SWF 的每个 FPS 并且会减慢 IDE 打印所有结果的速度,可能有一个改变颜色/可见性或其他的图形作为 false/true 的视觉提示)
-
您无法使用 while 循环控制应用行为。当 while 循环运行时,应用程序视图永远不会更新。了解 AS3 中的线程执行。
-
while (theBeat)是一个无限循环,如果您从未在循环内将theBeat设置为null。什么是theBeat以及如何使用onBeat?显示变量声明。
标签: actionscript-3 loops flash if-statement while-loop