從這個繼續: Timed loop, 10 second between定時循環,2個循環之間的X秒的JavaScript
這給了我我如何可以使循環在外部的()每次10秒,一個偉大的答案。 (在Y)
現在,我想使內循環中,X,所以循環一次每1秒,並保持在10000ms外循環(「Y」)(10秒)
如何能我這樣做?
從這個繼續: Timed loop, 10 second between定時循環,2個循環之間的X秒的JavaScript
這給了我我如何可以使循環在外部的()每次10秒,一個偉大的答案。 (在Y)
現在,我想使內循環中,X,所以循環一次每1秒,並保持在10000ms外循環(「Y」)(10秒)
如何能我這樣做?
您需要以類似currentY
的方式添加currentX
。然後,而不是遞增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);
})();
這裏是我的理解,並從你的答案做出來:http://jsfiddle.net/hnFse /? – Karem
http://jsfiddle.net/hnFse/1/的作品。 –