Browse Source

воспроизводить звуки

master
parent
commit
2cb0ec93a5
4 changed files with 68 additions and 6 deletions
  1. +65
    -0
      380.звуки.js
  2. +1
    -0
      700.пуск.js
  3. +1
    -6
      800.пример.json.js
  4. +1
    -0
      index.html

+ 65
- 0
380.звуки.js View File

@@ -0,0 +1,65 @@
function Звуки(ключники, события) {
this.создать = function() {
this.задано = {};
this.загружено = {};
события.подписать(this);
var тут = this;
ключники.push(function(ключ, путь, значение) {
тут.обработатьКлюч(ключ, путь, значение);
});
};

this.обработатьКлюч = function(ключ, путь, значение) {
if (!путь[0].startsWith("звуки"))
{
return;
}

var имя = путь[1];
var свойство = путь.slice(2).join(".");
if (!this.задано[имя])
{
this.задано[имя] = {};
}
this.задано[имя][свойство] = значение;
};

this.обработатьСобытие = function(событие) {
for (var имя in this.задано)
{
var значения = this.задано[имя];
if (!значения.файл)
{
continue;
}
for (var свойство in значения)
{
if (свойство.startsWith("события"))
{
var значение = значения[свойство];
if (событие == значение)
{
this.воспроизвести(значения.файл);
return;
}
}
}
}
};

this.воспроизвести = function(файл)
{
if (!this.загружено[файл])
{
this.загружено[файл] = new Audio(файл);
}
var звук = this.загружено[файл];
звук.pause();
звук.currentTime = 0;
звук.play();
};

// Конструктор.
this.создать();
}

+ 1
- 0
700.пуск.js View File

@@ -11,4 +11,5 @@
// Запустить.
мир.физика.создать();
мир.столкновения.создать();
мир.звуки = new Звуки(мир.ключники, мир.события);
мир.обновить();

+ 1
- 6
800.пример.json.js View File

@@ -414,11 +414,6 @@ function ПодкидываниеСтрелы() {
мир.подкидываниеСтрелы = new ПодкидываниеСтрелы();
мир.подкидываниеСтрелы.завершить = function() {
мир.подкидываниеСтрелы = null;

/**/var audio = new Audio("р/звуки/543927__eminyildirim__pistol-gun-cocking.wav");
/**/audio.play();
/**/console.debug("воспроизвели аудио");

};


@@ -431,7 +426,7 @@ function ОтладкаСобытий() {
this.обработатьСобытие = function(событие) {
if (событие == "закинули стрелу")
{
console.debug("событие", событие);
//console.debug("событие", событие);
}
};



+ 1
- 0
index.html View File

@@ -60,6 +60,7 @@
<script src="320.игрок.js"></script>
<script src="340.слежение.js"></script>
<script src="360.маскиПрыжков.js"></script>
<script src="380.звуки.js"></script>
<script src="400.столкновения.js"></script>
<script src="700.пуск.js"></script>
<script src="800.пример.json.js"></script>


Loading…
Cancel
Save