Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AdobeFlash(AS2):如何使循环永远重复,并且每5秒复制一个电影剪辑?_Flash_Actionscript_Actionscript 2 - Fatal编程技术网

AdobeFlash(AS2):如何使循环永远重复,并且每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一次,但在

我想做一个循环,永远重复,每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部分,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,但也许有人能帮你。