Не удается получить звуковую переменную для воспроизведения в цикле for с инкрементными числами - PullRequest
0 голосов
/ 17 февраля 2019

Я относительно новичок в javascript и некоторое время ломал голову над этим, поэтому надеялся, что кто-то сможет помочь.Я использую JavaScript с холстом HTML5.По сути, я бы хотел, чтобы соответствующая звуковая дорожка воспроизводилась в зависимости от того, какая кнопка нажата.Таким образом, при нажатии кнопки 0, музыка 0 будет играть и так далее (используя для циклов).Я сократил этот пример до 3, но их было бы гораздо больше.

Код работает нормально, кроме случаев, когда я хочу выполнить .play () для имени музыкальной переменной.(он отлично работает с тестовой строкой кода, которую я закомментировал при перемещении объекта вместо переменной), поэтому я предполагаю, что это связано с тем, как я объединил имя переменной и [i] и т. д.

Любая помощь будет принята с благодарностью.Большое спасибо заранее

var selected_button = 0
var that = this;

var music0 = new Audio("sounds/myAudio0.mp3");
var music1 = new Audio("sounds/myAudio1.mp3");
var music2 = new Audio("sounds/myAudio2.mp3");

for(let i = 0; i < 3; i++){
        that["button"+i].addEventListener("click", function() { selected_button = i; selection();});
    }

function selection(){
    for(let i = 0; i < 3; i++){
        if (selected_button == i){
            that["music"+i].play();
            //that["button"+i].x = 100;
        }
    }
}
...