在for循环中等待按钮按下?

时间:2018-04-28 18:23:08

标签: javascript html

我有2个音频文件,this.audio1和this.audio2。对于每个试验,用户应该选择两个文件是相同还是不同。所以,我想一个接一个地播放这两个音频文件,等待用户点击相同或不同的按钮,然后进入下一个试用版。这是我到目前为止播放音频文件的代码:

for (var i = 0; i < this.numTrials; i++){ 
   var audio1; // these are actually initialized, obviously, in my code
   var audio2; 
   var noRepeat = true;
   audio1.addEventListener('ended', function () {
       if (noRepeat) {
            audio2.play();
            noRepeat = false;
       }
   });
   audio2.addEventListener('ended', function () {
      game.audioComplete = true;
   });
   audio1.play();

   // here, I want to add code so it waits until a button is pressed before moving on

}

我尝试了一个eventListener,我的评论是在哪里,它没有用(它只是保持循环)。有没有人对我可以使用的东西有任何建议&#34;暂停&#34;循环并等待按下按钮,然后让它继续前进?

谢谢!

1 个答案:

答案 0 :(得分:1)

像这样的东西,这与@fixatd评论的内容相同。

var globalPlayCount = 0;
...
function play() {
  if(globalPlayCount < this.numTrials) {
    globalPlayCount++:
    audio1.play();
  }
}
...

按下按钮点击play()。只需确保您的事件监听器都完整无缺。