0

从这里继续: 定时循环,10 秒之间

这给了我一个很好的答案,告诉我如何每 10 秒在外部 for() 上进行一次循环。(他们)

现在我希望制作内循环,即 X,因此每 1 秒循环一次,并将外循环(“Y”)保持在 10000 毫秒(10 秒)

我怎样才能做到这一点?

4

2 回答 2

0

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

基本上,您只是在做与戴上y计时器完全相同的事情,只是x改为。

于 2012-09-07T16:49:08.260 回答
0

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

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);
})();​
于 2012-09-07T17:17:42.390 回答