2015-02-24 32 views
0

我已經放入了一個爲對象添加時間延遲的問題。 主要想法是當玩家擊中特定對象時,我想將遊戲級別更改爲下一級。但我不想立即發生這種情況,所以我想增加3秒的延遲時間。Actionscript,如何爲一個對象添加時間延遲

onClipEvent(enterframe) { 

    if (_root.char.hitTest(this)) { 
     //add dealy for the next 2 lines. 
     unloadMovie(this); 
     _root.gotoAndStop("StageL2"); 
    } 
} 

回答

0

我想補充一個計數器,根據你的幀率(說你有24fps的3秒是72frames) :

var hit = false; 
var counter; 
onClipEvent(enterframe) { 
    if (_root.char.hitTest(this)) { 
     hit = true; 
    } 
    if(!hit) { 
     waitcounter = 0; 
    } else { 
     waitcounter++; 
    } 
    if(waitcounter >= 72) { 
     unloadMovie(this); 
     _root.gotoAndStop("StageL2"); 
    } 
} 

我還增加了一個額外的例程,使hitTest觸發一個變量,否則,對於72幀,應該是真實的(如果你有移動的物體,那麼確實是非常小的機會)。

當你進入下一個階段時,不要忘記重置你的變量。

+0

我承認這很有效。 TY很多兄弟! – 2015-02-24 19:10:42

1

您可以通過使用Timer

像這樣做:

var myInterval:Number; 

function myMethode():Void 
     { 
      trace("Executed myMethode() after 3 Seconds") 
      clearInterval(myInterval); 
     } 

myInterval = setInterval(this, "myMethode", 3000);