2017-03-08 86 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()檢查當前時間,並決定是否該執行邏輯。