Javascript暂停循环直到事件
Javascript pause loop till event
我有javascript问题,这是我的代码的一部分:
for(var a = 0; a < videos.length; a++) {
source.setAttribute('src', videos[a]);
video.load();
video.play();
for(var b = 0; b < times[a].length; b++) {
video.addEventListener("timeupdate", function() {
if (this.currentTime >= times[a][b]) {
this.pause();
var answer = prompt("Please answer the question", "Answer");
}
}, false);
}
}
在数组videos
中,我有视频链接,在数组times
中,我有时间为每个视频暂停视频。
我的目标是开始一个视频,然后在某些时间暂停视频,并在回答问题后继续,然后在视频结束时开始另一个视频并再次提问。我的for循环可以立即完成所有工作,但它并没有像我想的那样工作。我想出了两个解决方案:
- 暂停循环,直到事件到达。
- 使用事件监听器。
我不知道该怎么做,所以我请求你的帮助。
你应该放弃for
循环,只处理事件。这样做至少可以解决几个问题:
var a = 0;
video.src = videos[a];
video.load();
video.play();
check_time();
//instead of looping through your video, you wait until one is finished
//to play the next one.
video.addEventListener("ended", function(){
a++;
if(a<videos.length){
video.src = videos[a];
check_time();
}
//this will add event listener each time video is changed.
function check_time(){
var b = 0;
video.removeEventListener("timeupdate")
video.addEventListener("timeupdate", function() {
if (this.currentTime >= times[a][b]) {
this.pause();
var answer = prompt("Please answer the question", "Answer");
b++;
}
}, false);
}
相关文章:
- 事件循环、回调队列和 Javascript 的单线程是如何连接的
- JavaScript运行时事件循环现有技术
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 页面卸载期间的JavaScript事件循环
- Node.js阻止事件循环
- 了解执行模型和事件循环
- 什么是“;Promise在事件循环的同一个循环上点火“;意思是
- JS调试器是否挂起整个JS事件循环
- js事件循环是否意味着可以为临时暂存空间使用全局变量
- 在 Web 浏览器中收集有关事件循环的信息
- 检测事件循环“滞后”
- “旋转事件循环”是什么意思
- 如何在 nodejs 中维护事件循环中的持久数据
- DOMNode插入的事件循环
- Javascript事件循环任务队列溢出是否可能
- JavaScript 中的事件处理程序如何由事件循环处理
- Node.js 不是文件上传(以及所有基于事件循环的语言)的好选择 - 这是真的
- 为什么 while 循环会阻塞事件循环
- node.js事件循环何时终止
- C#“;事件循环”;与JavaScript“相比较;事件循环”;