2015-02-24 30 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);