从这里继续: 定时循环,10 秒之间
这给了我一个很好的答案,告诉我如何每 10 秒在外部 for() 上进行一次循环。(他们)
现在我希望制作内循环,即 X,因此每 1 秒循环一次,并将外循环(“Y”)保持在 10000 毫秒(10 秒)
我怎样才能做到这一点?
从这里继续: 定时循环,10 秒之间
这给了我一个很好的答案,告诉我如何每 10 秒在外部 for() 上进行一次循环。(他们)
现在我希望制作内循环,即 X,因此每 1 秒循环一次,并将外循环(“Y”)保持在 10000 毫秒(10 秒)
我怎样才能做到这一点?
您需要以currentX
类似的方式添加到currentY
. 然后,而不是增加currentY
你应该增加currentX
. 如果currentX
不小于xnumHigh
则将其设置回xnumLow
并递增currentY
。
基本上,您只是在做与戴上y
计时器完全相同的事情,只是x
改为。
这是一种方法:(画布的东西只是一种视觉表示)
(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);
})();