我正在使用Simon游戏应用程序,现在有一个测试按钮。单击它时,将随机生成的颜色推入botPattern数组变量,然后我要遍历该数组并根据存储的项/颜色播放每个数组项的音频。
现在的问题是所有声音都是一次播放,而不是一个接一个地播放。所以我单击了第二次或第三次,阵列中的所有颜色声音都立即播放。我该如何解决?我尝试使用settimeout,但id没有任何作用。这是一个片段:
setTimeout(simonGameApp.playAudio(color), 5000);
});
下面是代码:https://codesandbox.io/s/00v44vrxj0
击中测试按钮将调用generateColorSequence函数。 我只想播放第一个数组项,然后播放第二个,依此类推 关于如何解决的任何想法?
答案 0 :(得分:1)
这是因为调用simonGameApp.playAudio(color)
并将函数的return
值传递给setTimeout()
。您需要将其包装在另一个函数中
setTimeout(function(){
simonGameApp.playAudio(color)
}, 5000);
ES6语法:
setTimeout(() => simonGameApp.playAudio(color),5000)