AdobeFlash(AS2):如何使循环永远重复,并且每5秒复制一个电影剪辑?
我想做一个循环,永远重复,每5秒复制一个电影剪辑。此代码AdobeFlash(AS2):如何使循环永远重复,并且每5秒复制一个电影剪辑?,flash,actionscript,actionscript-2,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一次,但在
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部分,movieclip将复制一次,并且相同的movieclip在5秒后重复(因为setInterval部分)。如果任何人有一个类似问题的链接或问题的答案,我将非常感谢 您应该设置并不断更改代码中的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);
不要使用间隔,这对于呼叫延迟是不准确的。使用计时器,自己计算时间:
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;
}
};
“永远”是个坏主意。它将使计算机崩溃或冻结。flashplayer每次运行只会得到操作系统分配给它的x数量的设备RAM,所以很快设备RAM就会装满这些复制的MCs。决定你想要达到的目标,并将其设置为限制(即:100份等)。。。PS:为什么不像2008年以来全世界一样,继续使用AS3呢?它有一个定时器
类。我已经忘了AS2,但也许有人能帮你。