【发布时间】:2018-07-20 07:51:42
【问题描述】:
我是 Flash Actionscript 的新手,因为我的编程课使用它。我通常使用 C++(或它的变体)并涉足 Java,所以 Actionscript 对我来说最熟悉。
但是,每当我使用 while 循环时,AS3 都会在 15 秒后崩溃。我需要使用 while 循环,否则整个代码的范围将结束,游戏将停止在我假定的代码上运行。在我的普通编程语言中,while (true) 会挂起游戏除非我有 Waitframe();在代码中的某个地方让它前进一帧。但我搜索,Actionscript 没有这样的东西,我发现的只是“无限循环是魔鬼 aaaaaaaa”。
太好了,我怎么能用这个来制作游戏?我希望我的游戏持续超过 15 秒,但 AS3 “有用”地在脚本“挂起”时终止脚本,尽管我正在做一些事情(尽管这些东西根本没有真正出现,大概是因为脚本挂起)。我是否错过了允许长时间使用 while 循环的等待功能,还是我做错了?
【问题讨论】:
-
是的,你做错了。您的应用程序挂起和崩溃的原因是因为 flash 是单线程的,所以您基本上将 ui-thread 放入一个永远无法解析的无限循环中,而 flash 不喜欢这样。相反,您应该在舞台上添加一个 EventListener 并收听
ENTER_FRAME,它每帧调用一次您的回调函数。 -
所以我把我的while循环变成一个函数并通过监听器调用它?什么是 Enter_Frame?那是每当一帧过去的时候吗?
标签: actionscript-3 flash actionscript