Как бы вы воспроизводили звук каждые определенное количество секунд в Phaser?

Мне нужно воспроизвести звук с помощью Phaser Framework, который воспроизводится каждые 10 секунд. Но как я могу реализовать событие, которое будет выполнено, когда звук завершится? поэтому я могу запустить 10-секундный таймер, чтобы снова воспроизвести звук.


person omarojo    schedule 26.06.2015    source источник
comment
Вы хотите воспроизвести звуковой эффект (который занимает x секунд), а затем подождать 10 секунд, или вы хотите воспроизводить звук каждые 10 секунд? В зависимости от этого вы можете использовать либо событие Sound.onStop, либо объект Time.   -  person BdR    schedule 26.06.2015
comment
В итоге я использовал событие onStop и внутри него создал таймер, который снова воспроизводит звук через 10 секунд. Я не знал, что событие onStop вызывается, когда звук заканчивает играть, я всегда искал onComplete, но его не существует для звуков. Также позже мне пришлось onStop.removeAll().   -  person omarojo    schedule 27.06.2015


Ответы (1)


Вы можете использовать событие для звука. Например:

sound.onStop.add( // When it ends set a timeout function to restart it
    function() {
        setTimeout(
            function() {
                sound.play();
            },
            10000 // Delay
        )
    }
);
sound.play();

Возможно, вы сможете упростить этот код, используя анимацию движения Phaser, но я мало использовал их, поэтому не знаю, как это сделать.

person hedgehog125    schedule 02.03.2018