2017-03-08 85 views
0

如何使用getTimer()正确执行类似sleep函数?我需要每15秒做一次动作。下面的代码不起作用。我在Linux上用mtasc编译器编译它。使用getTimer()方法睡眠脚本2

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

    static function main(mc) 
    { 

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

    } 

} 

回答

0

main指令将被执行一次。你必须建立某种循环或依靠tick玩家发送的事件来持续执行你的代码。

基本选项为:

while (true) { doSomething() } 

,这将永远执行,但请记住,FlashPlayer的是单线程所以当运行一切将被冻结,用户界面和用户输入包括在内。如果你正在构建一些不需要与用户交互的重型处理工具,这只是“好的”。

setInterval(doSomething, 15000) 

这会创建一个间隔,它会每X毫秒调用一次您的函数。这是最简单的选项,可能是你要找的。

addEventListener(Event.ENTER_FRAME, doSomething) 

这个寄存器用于Flash Player的ENTER_FRAME事件,这将(默认)被分派每秒30次的监听器。在该函数内部,您可以使用getTimer()检查当前时间,并决定是否该执行逻辑。