Adobe Flash(AS2):如何制作一个永远重复的循环,并且每5秒重复一次动画片段?

时间:2017-03-20 18:18:18

标签: flash actionscript actionscript-2

我想创建一个永远重复的循环,每5秒重复一次动画片段。这段代码

 var timer = 0;
countup = function(){
timer++;
if (timer >= 5){
    mc.duplicateMovieClip("mc2"+u, u, {_x:50});
    clearInterval(countupInterval);
}
}
var countupInterval = setInterval(countup,1000);

重复一次movieclip,但之后间隔停止(因为clearInterval)并且不再发生重复。如果我删除clearInterval部分,动画片段将被复制一次,并且相同的动画片段在5秒后重复(因为setInterval部分)。如果有人有类似问题的链接或问题的答案,我将非常感谢!

2 个答案:

答案 0 :(得分:0)

不要使用间隔,这对于呼叫延迟是不准确的。使用计时器并自己计算时间:

var timerMC:MovieClip = _root.createEmptyMovieClip("timerMC", _root.getNextHighestDepth());
timerMC.lastTime = getTimer();
timerMC.onEnterFrame = function() {
    var currentTime:Number = getTimer();
    if (currentTime - this.lastTime >= 5000) {
        mc.duplicateMovieClip("mc2"+u, u, {_x:50});
        u++;
        this.lastTime = currentTime;
    }
};

答案 1 :(得分:-1)

您应该在代码中设置并不断更改 u 变量 并省略 clearInterval 功能。然后,如果计时器值大于4,请将其再次设置为0。 例如:

var timer = 0;
var u = 0;
var x = 50;
countup = function(){
    timer++;    
    if (timer > 4){
        timer = 0;
        u++;
        mc.duplicateMovieClip("mc2"+u, u, {_x:x});
        // clearInterval(countupInterval);
        x += 50;
    }
}
var countupInterval = setInterval(countup, 1000);