diff --git a/3.0/проигрыватель/700.Игра.js b/3.0/проигрыватель/700.Игра.js
index 1023c85..149ef2a 100644
--- a/3.0/проигрыватель/700.Игра.js
+++ b/3.0/проигрыватель/700.Игра.js
@@ -4,12 +4,13 @@ function Игра()
{
this.события = new События();
this.пз = new ПараметрыЗапуска();
- this.исполнитьКод();
+ var z64 = this.пз.параметры["z64"];
+ this.исполнитьКод(z64);
+ this.отслеживатьОбновленияКода();
};
- this.исполнитьКод = function()
+ this.исполнитьКод = function(z64)
{
- var z64 = this.пз.параметры["z64"];
if (z64)
{
var код = изZ64(z64);
@@ -17,6 +18,14 @@ function Игра()
}
};
+ this.отслеживатьОбновленияКода = function()
+ {
+ var тут = this;
+ window.addEventListener("message", function(событие) {
+ тут.исполнитьКод(событие.data);
+ });
+ };
+
// Конструктор.
this.создать();
}
diff --git a/3.0/проигрыватель/700.игра.js b/3.0/проигрыватель/700.игра.js
index 1023c85..149ef2a 100644
--- a/3.0/проигрыватель/700.игра.js
+++ b/3.0/проигрыватель/700.игра.js
@@ -4,12 +4,13 @@ function Игра()
{
this.события = new События();
this.пз = new ПараметрыЗапуска();
- this.исполнитьКод();
+ var z64 = this.пз.параметры["z64"];
+ this.исполнитьКод(z64);
+ this.отслеживатьОбновленияКода();
};
- this.исполнитьКод = function()
+ this.исполнитьКод = function(z64)
{
- var z64 = this.пз.параметры["z64"];
if (z64)
{
var код = изZ64(z64);
@@ -17,6 +18,14 @@ function Игра()
}
};
+ this.отслеживатьОбновленияКода = function()
+ {
+ var тут = this;
+ window.addEventListener("message", function(событие) {
+ тут.исполнитьКод(событие.data);
+ });
+ };
+
// Конструктор.
this.создать();
}
diff --git a/3.0/редактор/100.Редактор.js b/3.0/редактор/100.Редактор.js
index 8be1596..752affd 100644
--- a/3.0/редактор/100.Редактор.js
+++ b/3.0/редактор/100.Редактор.js
@@ -1,4 +1,4 @@
-function Редактор(события, имяРедактора, имяВоспроизведения)
+function Редактор(события, имяРедактора)
{
this.создать = function()
{
@@ -25,10 +25,19 @@ function Редактор(события, имяРедактора, имяВос
var z64 = вZ64(содержимое);
var путь = window.location.pathname + "?z64=" + z64;
history.pushState(null, "", путь);
+ document.title = `M-3.0 ${z64.length}:${z64.slice(z64.length - 5)}`;
- var воспроизведение = document.getElementById("воспроизведение");
- var адрес = "../проигрыватель/index.html?z64=" + z64;
- воспроизведение.src = адрес;
+ // Исполняем явно код лишь первый раз.
+ var проигрыватель = document.getElementById("проигрыватель");
+ if (!проигрыватель.src)
+ {
+ проигрыватель.src = "../проигрыватель/index.html?z64=" + z64;
+ }
+ // После запуска уведомляем iframe о новом коде без перезагрузки.
+ else
+ {
+ window.frames.проигрыватель.postMessage(z64, "*");
+ }
};
this.обработатьСобытие = function(событие)
diff --git a/3.0/редактор/100.редактор.js b/3.0/редактор/100.редактор.js
index 8be1596..752affd 100644
--- a/3.0/редактор/100.редактор.js
+++ b/3.0/редактор/100.редактор.js
@@ -1,4 +1,4 @@
-function Редактор(события, имяРедактора, имяВоспроизведения)
+function Редактор(события, имяРедактора)
{
this.создать = function()
{
@@ -25,10 +25,19 @@ function Редактор(события, имяРедактора, имяВос
var z64 = вZ64(содержимое);
var путь = window.location.pathname + "?z64=" + z64;
history.pushState(null, "", путь);
+ document.title = `M-3.0 ${z64.length}:${z64.slice(z64.length - 5)}`;
- var воспроизведение = document.getElementById("воспроизведение");
- var адрес = "../проигрыватель/index.html?z64=" + z64;
- воспроизведение.src = адрес;
+ // Исполняем явно код лишь первый раз.
+ var проигрыватель = document.getElementById("проигрыватель");
+ if (!проигрыватель.src)
+ {
+ проигрыватель.src = "../проигрыватель/index.html?z64=" + z64;
+ }
+ // После запуска уведомляем iframe о новом коде без перезагрузки.
+ else
+ {
+ window.frames.проигрыватель.postMessage(z64, "*");
+ }
};
this.обработатьСобытие = function(событие)
diff --git a/3.0/редактор/index.html b/3.0/редактор/index.html
index 1ed6cf2..5ec8a47 100644
--- a/3.0/редактор/index.html
+++ b/3.0/редактор/index.html
@@ -33,7 +33,7 @@
flex-direction: column;
border: 1px dashed gainsboro;
}
- #воспроизведение
+ #проигрыватель
{
position: absolute;
right: 0;
@@ -55,7 +55,7 @@
-
+