Actionscript,如何为对象添加时间延迟

Actionscript, how to add a time delay for an object

我已经解决了为对象添加时间延迟的问题。 主要思想是当玩家击中特定对象时,我想将游戏级别更改为下一个级别。但我不希望这立即发生,所以我想添加 3 秒的延迟。

onClipEvent(enterframe) {

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

您可以使用 Timer

像这样:

var myInterval:Number;

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

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

我会根据你的帧率添加一个计数器(假设你有 24fps,3 秒是 72 帧):

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 帧内为真(如果你有移动的物体,那么它为真的可能性很小)。

进入下一阶段时不要忘记重置变量。