播放嘟嘟声的Javascript计时
我正在构建一个网格,它将在HTML5/Javascript中播放声音,基本上我希望它通过循环不断重复,所以我设置:播放嘟嘟声的Javascript计时,javascript,settimeout,setinterval,Javascript,Settimeout,Setinterval,我正在构建一个网格,它将在HTML5/Javascript中播放声音,基本上我希望它通过循环不断重复,所以我设置: window.setInterval(playMusic,INTERVAL); 到目前为止,这一切都很好,但当我尝试在每列上添加setTimeout事件时: function playMusic(){ for(var i=0;i<GRID_SIZE;i++){ setTimeout(playCol(i),INTERVAL/GRID_SIZE*i);
window.setInterval(playMusic,INTERVAL);
到目前为止,这一切都很好,但当我尝试在每列上添加setTimeout事件时:
function playMusic(){
for(var i=0;i<GRID_SIZE;i++){
setTimeout(playCol(i),INTERVAL/GRID_SIZE*i);
}
}
函数播放音乐(){
对于(var i=0;i您可以将playMusic设置为一个递归函数,使计数器位于外部:
var i = 0;
function playMusic(){
if( i < GRID_SIZE ){
playCol(i);
i++;
setTimeout( playMusic, INTERVAL/GRID_SIZE );
}
}
var i=0;
函数playMusic(){
如果(i<网格大小){
playCol(一);
i++;
设置超时(播放音乐、间隔/网格大小);
}
}
这样做播放音乐()函数将一直调用自身,直到if条件为false。i变量已更新,并将用于为playCol函数选择不同的声音。不,仍然错误…i
在调用时将GRID\u SIZE+1
。是的@epascarello,你是对的,我刚刚重写了我的答案。这非常有效,但我没有我真的不明白为什么。有人能详细解释一下吗?@archdev我刚刚更新了答案,在最后做了一些解释。