使用getTimer()方法在动作脚本2中睡觉

时间:2017-03-08 12:17:40

标签: linux actionscript sleep mtasc

如何使用sleep正确执行getTimer()功能之类的操作?我需要每15秒做一次动作。下面的代码不起作用。我在Linux上用mtasc编译器编译它。

class Tuto
{
static var lastMsg = 0;
static var msgInt = 15000;

  static function main(mc)
  {

    if(getTimer() > lastMsg + msgInt)
      {
         trace("something");
         lastMsg = getTimer();
      }

  }

}

1 个答案:

答案 0 :(得分:0)

main指令只执行一次。您必须构建某种循环或依赖播放器发送的 tick 事件来连续执行代码。

基本选项是:

while (true) { doSomething() }

这将永远执行,但请记住,flashplayer是单线程的,因此在运行时,其他所有内容都将被冻结,包含UI和用户输入。这只是"好"如果你正在构建一些不需要与用户交互的重处理工具。

setInterval(doSomething, 15000)

这会创建一个每X毫秒调用一次函数的间隔。这是最简单的选择,也可能是您正在寻找的选项。

addEventListener(Event.ENTER_FRAME, doSomething)

这将为Flash Player的ENTER_FRAME事件注册一个侦听器,该事件将每秒调度30次(默认情况下)。在该功能中,您可以使用getTimer()检查当前时间,并确定是否有时间执行您的逻辑。