Adobe Flash (AS2):如何制作一个永远重复的循环,并且每 5 秒复制一个影片剪辑?



我想做一个永远重复的循环,每5秒复制一个影片剪辑。此代码

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

复制影片剪辑一次,但之后间隔停止(由于 clearInterval),不再发生重复。如果我删除 clearInterval 部分,则影片剪辑将复制一次,并且相同的影片剪辑将在 5 秒后重复(因为 setInterval 部分)。如果有人有类似问题的链接或问题的答案,我将不胜感激!

不要使用间隔,呼叫延迟不准确。使用计时器并自行计算时间:

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;
}
};

你应该在代码中设置并不断更改该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);

最新更新