@@ -44,18 +44,18 @@ function Состояние() | |||||
}; | }; | ||||
this.разобрать = function(словарь) { | this.разобрать = function(словарь) { | ||||
/**/console.debug("01"); | |||||
var значения = this.лишьНовыеЗначения(this.выпрямить(словарь)); | var значения = this.лишьНовыеЗначения(this.выпрямить(словарь)); | ||||
/**/console.debug("02"); | |||||
for (var ключ in значения) | for (var ключ in значения) | ||||
{ | { | ||||
var путь = ключ.split("."); | var путь = ключ.split("."); | ||||
var значение = значения[ключ]; | var значение = значения[ключ]; | ||||
this.обработчик(ключ, путь, значение); | |||||
if (this.обработчик) | |||||
{ | |||||
this.обработчик(ключ, путь, значение); | |||||
} | |||||
} | } | ||||
}; | }; | ||||
// Конструктор. | // Конструктор. | ||||
this.создать(); | this.создать(); | ||||
} | } |
@@ -1,5 +1,18 @@ | |||||
var мир = {}; | var мир = {}; | ||||
мир.uuid = function() | |||||
{ | |||||
// https://stackoverflow.com/a/2117523 | |||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( | |||||
/[xy]/g, | |||||
function(c) | |||||
{ | |||||
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); | |||||
return v.toString(16); | |||||
} | |||||
); | |||||
}; | |||||
мир.вZ64 = function(строка) | мир.вZ64 = function(строка) | ||||
{ | { | ||||
var байты = new TextEncoder("utf-8").encode(строка); | var байты = new TextEncoder("utf-8").encode(строка); | ||||
@@ -14,19 +27,6 @@ var мир = {}; | |||||
return new TextDecoder("utf-8").decode(байты); | return new TextDecoder("utf-8").decode(байты); | ||||
}; | }; | ||||
мир.uuid = function() | |||||
{ | |||||
// https://stackoverflow.com/a/2117523 | |||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( | |||||
/[xy]/g, | |||||
function(c) | |||||
{ | |||||
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); | |||||
return v.toString(16); | |||||
} | |||||
); | |||||
}; | |||||
мир.назначитьКнопкамСобытия = function(события, список) | мир.назначитьКнопкамСобытия = function(события, список) | ||||
{ | { | ||||
for (var номер in список) | for (var номер in список) | ||||
@@ -66,3 +66,8 @@ var мир = {}; | |||||
} | } | ||||
return параметры; | return параметры; | ||||
}; | }; | ||||
мир.разобрать = function(словарь) | |||||
{ | |||||
мир.состояние.разобрать(словарь); | |||||
}; |
@@ -2,11 +2,9 @@ function Игра() | |||||
{ | { | ||||
this.создать = function() | this.создать = function() | ||||
{ | { | ||||
this.состояние = new Состояние(); | |||||
this.состояние.обработчик = this.обработатьКлюч; | |||||
var тут = this; | |||||
мир.разобрать = function(словарь) { тут.состояние.разобрать(словарь); }; | |||||
this.события = new События(); | |||||
мир.события = new События(); | |||||
мир.состояние = new Состояние(); | |||||
мир.состояние.обработчик = this.обработатьКлюч; | |||||
var z64 = мир.параметрыЗапуска()["z64"]; | var z64 = мир.параметрыЗапуска()["z64"]; | ||||
this.исполнитьКод(z64); | this.исполнитьКод(z64); | ||||
this.отслеживатьОбновленияКода(); | this.отслеживатьОбновленияКода(); | ||||
@@ -14,8 +14,8 @@ | |||||
<div id="отладка"></div> | <div id="отладка"></div> | ||||
<script src="../общее/100.События.js"></script> | <script src="../общее/100.События.js"></script> | ||||
<script src="../общее/150.Состояние.js"></script> | |||||
<script src="../общее/200.функции.js"></script> | <script src="../общее/200.функции.js"></script> | ||||
<script src="100.Состояние.js"></script> | |||||
<script src="700.Игра.js"></script> | <script src="700.Игра.js"></script> | ||||
<script> | <script> | ||||
var игра = new Игра(); | var игра = new Игра(); | ||||
@@ -2,9 +2,10 @@ function Муром() | |||||
{ | { | ||||
this.создать = function() | this.создать = function() | ||||
{ | { | ||||
this.события = new События(); | |||||
this.редактор = new Редактор(this.события, "редактор"); | |||||
this.пульт = new Пульт(this.события, "ошибка", "перезапустить", "отдельно", "ссылка"); | |||||
мир.события = new События(); | |||||
мир.состояние = new Состояние(); | |||||
мир.редактор = new Редактор(мир.события, "редактор"); | |||||
мир.пульт = new Пульт(мир.события, "ошибка", "перезапустить", "отдельно", "ссылка"); | |||||
}; | }; | ||||
// Конструктор. | // Конструктор. | ||||
@@ -80,6 +80,7 @@ | |||||
<iframe id="проигрыватель" name="проигрыватель"></iframe> | <iframe id="проигрыватель" name="проигрыватель"></iframe> | ||||
<script src="../общее/100.События.js"></script> | <script src="../общее/100.События.js"></script> | ||||
<script src="../общее/150.Состояние.js"></script> | |||||
<script src="../общее/200.функции.js"></script> | <script src="../общее/200.функции.js"></script> | ||||
<script src="100.Редактор.js"></script> | <script src="100.Редактор.js"></script> | ||||
<script src="200.Пульт.js"></script> | <script src="200.Пульт.js"></script> | ||||