定时循环,使用Javascript在2个循环之间间隔x秒

Timed loops, x seconds between 2 loops with Javascript

本文关键字:循环 之间 使用 Javascript 定时 2个      更新时间:2023-09-26

从此处继续:定时循环,之间10秒

这给了我一个很好的答案,告诉我如何在外层每10秒循环一次。(Y)

现在我希望使内部循环,X,所以每1秒循环一次,并将外部循环("Y")保持在10000ms(10秒)

我该怎么做?

您需要以类似于currentY的方式添加currentX。然后,不应递增currentY,而应递增currentX。如果currentX不小于xnumHigh,则将其设置回xnumLow并递增currentY

基本上,你只是在做与把y放在计时器上完全相同的事情,只是用x

这里有一种方法:(画布上的东西只是一种视觉表示)

http://jsfiddle.net/J5GvM/1/

(function nestedLoop(){
    var innerStep = 10;
    var xnumLow = 0;
    var xnumHigh = 500;
    var currentX = xnumLow;
    var outerStep = 3000;
    var ynumLow = 0;
    var ynumHigh = 500;
    var currentY = ynumLow;
    var canvas = $("#canvas")[0];
    var ctx = canvas.getContext('2d');
    var drawPixel = function(x, y){
        ctx.fillRect(x,y,1,1);
    };
    (function outerLoop(oStart, oEnd){
        currentX = xnumLow;
        currentY = oStart;
        (function innerLoop(iStart, iEnd){
            currentX = iStart;
            // Do stuff here
            drawPixel(currentX, currentY);
            if (iStart < iEnd)
                setTimeout(function(){innerLoop(++iStart, iEnd);}, innerStep); 
            else
                setTimeout(function(){outerLoop(++oStart, oEnd);}, outerStep);
        })(currentX, xnumHigh);
    })(currentY, ynumHigh);
})();​