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 @@   - +