diff --git a/380.звуки.js b/380.звуки.js index df1f623..6469502 100644 --- a/380.звуки.js +++ b/380.звуки.js @@ -1,7 +1,7 @@ function Звуки(ключники, события) { this.создать = function() { this.задано = {}; - this.загружено = {}; + this.аудио = {}; события.подписать(this); var тут = this; ключники.push(function(ключ, путь, значение) { @@ -40,7 +40,7 @@ function Звуки(ключники, события) { var значение = значения[свойство]; if (событие == значение) { - this.воспроизвести(значения.файл); + this.воспроизвести(значения.файл, значения.повторять); return; } } @@ -48,16 +48,23 @@ function Звуки(ключники, события) { } }; - this.воспроизвести = function(файл) + this.воспроизвести = function(файл, повторять) { - if (!this.загружено[файл]) + if (!this.аудио[файл]) { - this.загружено[файл] = new Audio(файл); + this.аудио[файл] = new Audio(файл); } - var звук = this.загружено[файл]; + var звук = this.аудио[файл]; звук.pause(); звук.currentTime = 0; звук.play(); + + if (повторять) + { + звук.onended = function() { + звук.play(); + } + } }; // Конструктор. diff --git a/800.пример.json.js b/800.пример.json.js index 8a1b8ee..3f52ede 100644 --- a/800.пример.json.js +++ b/800.пример.json.js @@ -444,3 +444,6 @@ function ОтладкаСобытий() { мир.отладкаСобытий = new ОтладкаСобытий(); + +// Запустить звук избы +мир.события.уведомить("вошли в избу");