Этот вопрос использует Aframe.
У меня есть видеосфера в цикле вручную с включенным addEventListener («конец»).
Код работает нормально, пока я не посмотрю на консоль. Это дает мне странные журналы.
myvideo = document.querySelector("#videoSphere");
var aEntranceScene1 = document.querySelectorAll("#playButton1");
for (var i = 0; i < aEntranceScene1.length; i++) {
aEntranceScene1[i].addEventListener("click", function () {
Scene1();
});
};
function Scene1(){
myvideo.setAttribute("src", "video/AEntranceScene1.mp4");
myvideo.currentTime = 0;
myvideo.play();
console.log("playing AEntranceScene1");
Hotspots();
myvideo.addEventListener("ended", function () {
console.log("AEntranceScene1 ended");
Scene1();
});
};
function Hotspots() {
sceneIndex = 1;
document.querySelector("#DButton").emit("disappear");
setTimeout(function () {
if (sceneIndex == 1 && !myvideo.paused) {
document.querySelector("#DButton").emit("move-start");
}
}, 3000);
};
Когда видео воспроизводится в первый раз. Отображает журнал "Игра
AEntranceScene1 и когда он закончился, журнал отображает «AEntranceScene1 закончилась» 1 раз, как и ожидалось. Это (Прикрепленное фото0) проиграно 1 раз
Но потом, когда видео воспроизведется снова. Отображает журнал "Игра
AEntranceScene1 "несколько раз, не только добавить один. Когда это закончилось, журнал также отображает несколько раз" AEntranceScene1 закончилась "это (Прикрепленное фото1), воспроизведенное 2 раза
![this (Attached the photo1) played 2 time](https://i.stack.imgur.com/97NeZ.png)
Это будет хуже, если завершится еще один цикл.
[![This (Attached the photo2) played 3 times only](https://i.stack.imgur.com/QboYr.png)
![enter image description here](https://i.stack.imgur.com/uvNJL.png)
Можете ли вы объяснить мне, что здесь происходит? а какое-нибудь исправление к моему коду?
Спасибо