проигрыватель

This commit is contained in:
kornerr committed 2021-09-06 15:25:20 +03:00
1 parent 3344af5fca
commit 18213f4df0
13 files changed
+291 -70

No files matched your search

@@ -0,0 +1,89 @@
function Редактор(события, имяРедактора, имяВоспроизведения)
{
this.создать = function()
{
this.установитьAce();
this.улавливатьЗавершениеРедактирования();
this.пз = new ПараметрыЗапуска();
this.задатьКодПриЗапуске();
события.подписать(this);
};
this.задатьКодПриЗапуске = function()
{
var z64 = this.пз.параметры["z64"];
if (z64)
{
var код = изZ64(z64);
this.ace.session.setValue(код);
}
};
this.исполнитьКод = function()
{
var содержимое = this.ace.session.getValue();
var z64 = вZ64(содержимое);
var путь = window.location.pathname + "?z64=" + z64;
history.pushState(null, "", путь);
var воспроизведение = document.getElementById("воспроизведение");
var адрес = "../проигрыватель/index.html?z64=" + z64;
воспроизведение.src = адрес;
};
this.обработатьСобытие = function(событие)
{
if (событие == "завершили редактирование")
{
this.проверитьКорректностьКода();
}
else if (событие == "код корректен")
{
this.исполнитьКод();
}
};
this.установитьAce = function()
{
var область = document.getElementById(имяРедактора);
this.ace = window.ace.edit(имяРедактора);
this.ace.session.setMode("ace/mode/javascript");
this.ace.session.setUseWrapMode(true);
}
this.улавливатьЗавершениеРедактирования = function()
{
var тут = this;
this.ace.session.on("change", function(дельта) {
const билет = uuid();
тут.билет = билет;
setTimeout(
function()
{
if (билет == тут.билет)
{
события.уведомить("завершили редактирование");
}
},
1000
);
});
};
this.проверитьКорректностьКода = function()
{
try
{
eval(this.ace.session.getValue());
события.уведомить("код корректен");
}
catch (ошибка)
{
события.уведомить("код некорректен");
}
};
// Конструктор.
this.создать();
}