从此处继续:定时循环,之间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);
})();