состояние

This commit is contained in:
2021-09-14 14:34:34 +03:00
parent 4f2ab349c2
commit 186bd312bb
6 changed files with 31 additions and 26 deletions

View File

@@ -44,18 +44,18 @@ function Состояние()
};
this.разобрать = function(словарь) {
/**/console.debug("01");
var значения = this.лишьНовыеЗначения(this.выпрямить(словарь));
/**/console.debug("02");
for (var ключ in значения)
{
var путь = ключ.split(".");
var значение = значения[ключ];
this.обработчик(ключ, путь, значение);
if (this.обработчик)
{
this.обработчик(ключ, путь, значение);
}
}
};
// Конструктор.
this.создать();
}

View File

@@ -1,5 +1,18 @@
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(строка)
{
var байты = new TextEncoder("utf-8").encode(строка);
@@ -14,19 +27,6 @@ var мир = {};
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(события, список)
{
for (var номер in список)
@@ -66,3 +66,8 @@ var мир = {};
}
return параметры;
};
мир.разобрать = function(словарь)
{
мир.состояние.разобрать(словарь);
};

View File

@@ -2,11 +2,9 @@ function Игра()
{
this.создать = function()
{
this.состояние = new Состояние();
this.состояние.обработчик = this.обработатьКлюч;
var тут = this;
мир.разобрать = function(словарь) { тут.состояние.разобрать(словарь); };
this.события = new События();
мир.события = new События();
мир.состояние = new Состояние();
мир.состояние.обработчик = this.обработатьКлюч;
var z64 = мир.параметрыЗапуска()["z64"];
this.исполнитьКод(z64);
this.отслеживатьОбновленияКода();

View File

@@ -14,8 +14,8 @@
<div id="отладка"></div>
<script src="../общее/100.События.js"></script>
<script src="../общее/150.Состояние.js"></script>
<script src="../общее/200.функции.js"></script>
<script src="100.Состояние.js"></script>
<script src="700.Игра.js"></script>
<script>
var игра = new Игра();

View File

@@ -2,9 +2,10 @@ function Муром()
{
this.создать = function()
{
this.события = new События();
this.редактор = new Редактор(this.события, "редактор");
this.пульт = new Пульт(this.события, "ошибка", "перезапустить", "отдельно", "ссылка");
мир.события = new События();
мир.состояние = new Состояние();
мир.редактор = new Редактор(мир.события, "редактор");
мир.пульт = new Пульт(мир.события, "ошибка", "перезапустить", "отдельно", "ссылка");
};
// Конструктор.

View File

@@ -80,6 +80,7 @@
<iframe id="проигрыватель" name="проигрыватель"></iframe>
<script src="../общее/100.События.js"></script>
<script src="../общее/150.Состояние.js"></script>
<script src="../общее/200.функции.js"></script>
<script src="100.Редактор.js"></script>
<script src="200.Пульт.js"></script>