сообщать об ошибке
This commit is contained in:
31
3.0/редактор/040.события.js
Normal file
31
3.0/редактор/040.события.js
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
function События()
|
||||||
|
{
|
||||||
|
this.создать = function()
|
||||||
|
{
|
||||||
|
this.обработчики = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
this.подписать = function(обработчик)
|
||||||
|
{
|
||||||
|
this.обработчики.push(обработчик);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.отписать = function(обработчик) {
|
||||||
|
var номер = this.обработчики.indexOf(обработчик);
|
||||||
|
if (номер != -1)
|
||||||
|
{
|
||||||
|
this.обработчики.splice(номер, 1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.уведомить = function(событие) {
|
||||||
|
for (var номер in this.обработчики)
|
||||||
|
{
|
||||||
|
var обработчик = this.обработчики[номер];
|
||||||
|
обработчик.обработатьСобытие(событие);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Конструктор.
|
||||||
|
this.создать();
|
||||||
|
}
|
||||||
@@ -1,9 +1,18 @@
|
|||||||
function Редактор(имяОбласти)
|
function Редактор(события, имяОбласти)
|
||||||
{
|
{
|
||||||
this.создать = function()
|
this.создать = function()
|
||||||
{
|
{
|
||||||
this.установитьAce();
|
this.установитьAce();
|
||||||
this.улавливатьРедактирование();
|
this.улавливатьЗавершениеРедактирования();
|
||||||
|
события.подписать(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.обработатьСобытие = function(событие)
|
||||||
|
{
|
||||||
|
if (событие == "завершили редактирование")
|
||||||
|
{
|
||||||
|
this.проверитьКорректностьКода();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.установитьAce = function()
|
this.установитьAce = function()
|
||||||
@@ -13,7 +22,7 @@ function Редактор(имяОбласти)
|
|||||||
this.ace.session.setMode("ace/mode/javascript");
|
this.ace.session.setMode("ace/mode/javascript");
|
||||||
}
|
}
|
||||||
|
|
||||||
this.улавливатьРедактирование = function()
|
this.улавливатьЗавершениеРедактирования = function()
|
||||||
{
|
{
|
||||||
var тут = this;
|
var тут = this;
|
||||||
this.ace.session.on("change", function(дельта) {
|
this.ace.session.on("change", function(дельта) {
|
||||||
@@ -24,7 +33,7 @@ function Редактор(имяОбласти)
|
|||||||
{
|
{
|
||||||
if (билет == тут.билет)
|
if (билет == тут.билет)
|
||||||
{
|
{
|
||||||
тут.проверитьКорректностьКода();
|
события.уведомить("завершили редактирование");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
1000
|
1000
|
||||||
@@ -37,11 +46,11 @@ function Редактор(имяОбласти)
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
eval(this.ace.session.getValue());
|
eval(this.ace.session.getValue());
|
||||||
/**/console.debug("ИГР Редактор.проверитьКК OK");
|
события.уведомить("код корректен");
|
||||||
}
|
}
|
||||||
catch (ошибка)
|
catch (ошибка)
|
||||||
{
|
{
|
||||||
/**/console.debug("ИГР Редактор.проверитьКК ОШИБКА: ", ошибка);
|
события.уведомить("код некорректен");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,33 @@
|
|||||||
function Пульт(имяОбласти, имяПуска)
|
function Пульт(события, имяОшибки, имяПуска)
|
||||||
{
|
{
|
||||||
this.создать = function()
|
this.создать = function()
|
||||||
{
|
{
|
||||||
this.настроитьКнопкуПуска();
|
var ошибка = document.getElementById(имяОшибки);
|
||||||
};
|
|
||||||
|
|
||||||
this.настроитьКнопкуПуска = function()
|
|
||||||
{
|
|
||||||
var пуск = document.getElementById(имяПуска);
|
var пуск = document.getElementById(имяПуска);
|
||||||
пуск.addEventListener("click", function(событие) {
|
пуск.addEventListener("click", function(событие) {
|
||||||
/**/console.debug("НАДО запустить");
|
/**/console.debug("НАДО запустить");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
события.подписать(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.обработатьСобытие = function(событие)
|
||||||
|
{
|
||||||
|
if (событие == "код корректен")
|
||||||
|
{
|
||||||
|
this.показатьОшибку(false);
|
||||||
|
}
|
||||||
|
else if (событие == "код некорректен")
|
||||||
|
{
|
||||||
|
this.показатьОшибку(true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
this.показатьОшибку = function(показать)
|
||||||
|
{
|
||||||
|
ошибка.innerHTML = показать ? "⚠" : " ";
|
||||||
};
|
};
|
||||||
|
|
||||||
// Конструктор.
|
// Конструктор.
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ function Муром()
|
|||||||
{
|
{
|
||||||
this.создать = function()
|
this.создать = function()
|
||||||
{
|
{
|
||||||
this.редактор = new Редактор("редактор");
|
this.события = new События();
|
||||||
this.пульт = new Пульт("пульт", "пуск");
|
this.редактор = new Редактор(this.события, "редактор");
|
||||||
|
this.пульт = new Пульт(this.события, "ошибка", "пуск");
|
||||||
};
|
};
|
||||||
|
|
||||||
// Конструктор.
|
// Конструктор.
|
||||||
|
|||||||
@@ -31,7 +31,8 @@
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 4em;
|
width: 4em;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
flex-direction: column;
|
||||||
|
/*justify-content: center;*/
|
||||||
border: 1px dashed gainsboro;
|
border: 1px dashed gainsboro;
|
||||||
}
|
}
|
||||||
#воспроизведение
|
#воспроизведение
|
||||||
@@ -44,27 +45,21 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style>
|
<style>
|
||||||
/*
|
.впульте
|
||||||
.кнопка {
|
{
|
||||||
border-radius: 50%;
|
margin: 0 auto;
|
||||||
width: 3em;
|
|
||||||
height: 3em;
|
|
||||||
border: 2px solid lightgrey;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
background: white;
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="редактор"></div>
|
<div id="редактор"></div>
|
||||||
<div id="пульт">
|
<div id="пульт">
|
||||||
<a id="пуск" class="uk-icon-button uk-margin-top uk-margin-bottom" uk-icon="play" uk-tooltip="Пуск"></a>
|
<span id="ошибка" class="впульте"> </span>
|
||||||
|
<a id="пуск" class="впульте uk-icon-button uk-margin-top" uk-icon="play" uk-tooltip="Пуск"></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="воспроизведение"></div>
|
<div id="воспроизведение"></div>
|
||||||
|
|
||||||
|
<script src="040.события.js"></script>
|
||||||
<script src="100.редактор.js"></script>
|
<script src="100.редактор.js"></script>
|
||||||
<script src="200.пульт.js"></script>
|
<script src="200.пульт.js"></script>
|
||||||
<script src="700.муром.js"></script>
|
<script src="700.муром.js"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user