|
- мир.ввод = {
- клавиши: {},
- задано: {},
- };
-
- // // // //
-
-
- мир.ключники.push(function(ключ, путь, значение){
- if (!ключ.startsWith("ввод"))
- {
- return;
- }
-
- var номер = путь[1];
-
- if (!(номер in мир.ввод.задано))
- {
- мир.ввод.задано[номер] = {};
- }
-
- var свойство = путь.slice(2).join(".");
- мир.ввод.задано[номер][свойство] = значение;
-
-
- console.debug("ввод", ключ, путь, значение);
- });
-
-
- // // // //
-
-
- window.addEventListener("keydown", function(o) {
- обработатьКлавишу(o.key, true);
- });
- window.addEventListener("keyup", function(o) {
- обработатьКлавишу(o.key, false);
- });
-
-
- // // // //
-
-
- function обработатьКлавишу(клавиша, нажата)
- {
- // Исключаем повторы.
- if (мир.ввод.клавиши[клавиша] == нажата)
- {
- return;
- }
-
- мир.ввод.клавиши[клавиша] = нажата;
-
- for (var номер in мир.ввод.задано)
- {
- var задано = мир.ввод.задано[номер];
- var клавиши = [];
- for (var элемент in задано)
- {
- if (элемент.startsWith("клавиши"))
- {
- клавиши.push(задано[элемент]);
- }
- }
- if (
- клавиши.includes(клавиша) &&
- задано.действие
- ) {
- мир.действия.исполнить(задано.действие);
- }
- }
- }
|