Аудиофайлы, воспроизводимые сразу при циклическом воспроизведении массива аудиофайлов - PullRequest
0 голосов
/ 13 марта 2019

Я работаю над игровым приложением Simon и на данный момент имею тестовую кнопку.При нажатии на нее случайно сгенерированный цвет помещается в переменную массива botPattern, а затем я хочу перебрать массив и воспроизвести аудио для каждого элемента массива в зависимости от сохраненного элемента / цвета.

Теперь проблема заключается в том,звуки звучат сразу, а не один за другим.Итак, я нажал, скажем, 2 или 3 раза, все цветные звуки в массиве воспроизводятся одновременно.Как мне это решить?Я пытался использовать settimeout, но id не оказал никакого влияния.Вот фрагмент кода:

        setTimeout(simonGameApp.playAudio(color), 5000);
      });

код: https://codesandbox.io/s/00v44vrxj0

Нажатие кнопки тестирования вызывает функцию generateColorSequence.Все, что я хочу, это чтобы первый элемент массива воспроизводился, затем 2-й и т. Д. Есть какие-нибудь идеи о том, как это решить?

1 Ответ

1 голос
/ 13 марта 2019

Это потому, что вызывается simonGameApp.playAudio(color), а значение return функции передается в setTimeout().Вам нужно обернуть его в другую функцию

setTimeout(function(){
   simonGameApp.playAudio(color)
}, 5000);

ES6 Synstax :

setTimeout(() => simonGameApp.playAudio(color),5000)
...