Как воспроизвести аудиоклип один раз, даже если код должен вызывать его более одного раза?
Я создаю игру на JavaScript и хочу всплеск sound
если игрок падает в воду (и умирает).
Однако, поскольку вода состоит из множества синих кубиков, звук в настоящее время повторяется для каждого "блока" воды, в который попадает игрок.
Есть ли способ заставить звук воспроизводиться только один раз, независимо от того, сколько водяных блоков игрок касается?
Я пытаюсь использовать for statement
, но не повезло.
var count = 1;
for (var i = 0; i < count; i++){
var splash = new Audio("splash.mp3");
if ( type == "water"){
splash.play();
};
};
3 ответа
Пожалуйста, сначала исправьте ошибку цикла...
for (var i = 0; i < 1; i++){
var splash = new Audio("splash.mp3");
if ( type == "water"){
splash.play();
};
};
И дайте нам знать, если это решило вашу проблему?
Возможно, вам придется изменить класс Audio, или, в качестве альтернативы, вам придется отслеживать, когда он прекращает играть, чтобы вы могли изменить свой логический класс.
Так
if (!splash.isPlaying()) {
splash.play();
}
Или же
if (!splashPlaying) {
splashPlaying = true;
splash.play()
}
function isPlaying(audelem) { return !audelem.paused; }
var count = 1;
var splash = new Audio("splash.mp3");
for (var i = 0; i < count; i++){
if ( type == "water"&&!isPlaying(splash )){
splash.play();
break;
};
};
или же
var count = 1;
var splash = new Audio("splash.mp3");
for (var i = 0; i < count; i++){
if ( type == "water"&&audelem.paused){
splash.play();
break;
};
};