From da460d6faa90be5bc4846995dfed4b89d15e294b Mon Sep 17 00:00:00 2001 From: liteng <930372551@qq.com> Date: Sun, 17 Jun 2018 21:14:36 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81Application=E4=B8=AD=E5=90=84?= =?UTF-8?q?=E5=A4=A7=E5=AD=90=E6=A8=A1=E5=9D=97=E7=94=B1=E4=BC=A0editor?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=BC=A0app=E3=80=82=202=E3=80=81=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=B2=A1=E7=94=A8=E5=A4=84=E7=9A=84Modal=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Application.js | 33 +++++++++++++++++-------------- src/core/Player.js | 4 +++- src/core/Script.js | 4 +++- src/core/Signal.js | 4 ---- src/editor/Toolbar.js | 4 +++- src/editor/Viewport.js | 4 +++- src/event/editor/AutoSaveEvent.js | 4 ---- src/event/editor/SetSceneEvent.js | 7 +++++++ src/menu/Menubar.js | 4 +++- src/panel/Panel.js | 4 +++- src/ui/Window.js | 10 ++++++++++ 11 files changed, 53 insertions(+), 29 deletions(-) diff --git a/src/Application.js b/src/Application.js index 3151d1b5..c883d801 100644 --- a/src/Application.js +++ b/src/Application.js @@ -25,26 +25,29 @@ function Application(container, options) { // 编辑器 this.editor = new Editor(this); - var viewport = new Viewport(this.editor); - this.container.appendChild(viewport.dom); + // 编辑区 + this.viewport = new Viewport(this); + this.container.appendChild(this.viewport.dom); - var script = new Script(this.editor); - this.container.appendChild(script.dom); + // 脚本编辑窗口 + this.script = new Script(this); + this.container.appendChild(this.script.dom); - var player = new Player(this.editor); - this.container.appendChild(player.dom); + // 启动窗口 + this.player = new Player(this); + this.container.appendChild(this.player.dom); - var toolbar = new Toolbar(this.editor); - this.container.appendChild(toolbar.dom); + // 底部状态栏 + this.toolbar = new Toolbar(this); + this.container.appendChild(this.toolbar.dom); - var menubar = new Menubar(this.editor); - this.container.appendChild(menubar.dom); + // 菜单栏 + this.menubar = new Menubar(this); + this.container.appendChild(this.menubar.dom); - var sidebar = new Panel(this.editor); - this.container.appendChild(sidebar.dom); - - var modal = new UI.Modal(); - this.container.appendChild(modal.dom); + // 侧边栏 + this.sidebar = new Panel(this); + this.container.appendChild(this.sidebar.dom); // 是否从文件中加载场景,从文件中加载场景的url格式是index.html#file=xxx this.isLoadingFromHash = false; diff --git a/src/core/Player.js b/src/core/Player.js index c5515ef4..7f1e7531 100644 --- a/src/core/Player.js +++ b/src/core/Player.js @@ -4,7 +4,9 @@ import UI from '../ui/UI'; * @author mrdoob / http://mrdoob.com/ */ -function Player(editor) { +function Player(app) { + this.app = app; + var editor = this.app.editor; var signals = editor.signals; diff --git a/src/core/Script.js b/src/core/Script.js index ff912059..aff4f0b9 100644 --- a/src/core/Script.js +++ b/src/core/Script.js @@ -5,7 +5,9 @@ import SetScriptValueCommand from '../command/SetScriptValueCommand'; * @author mrdoob / http://mrdoob.com/ */ -function Script(editor) { +function Script(app) { + this.app = app; + var editor = this.app.editor; var signals = editor.signals; diff --git a/src/core/Signal.js b/src/core/Signal.js index d4300113..d793a9dc 100644 --- a/src/core/Signal.js +++ b/src/core/Signal.js @@ -16,10 +16,6 @@ function Signal() { this.enteredVR = new signals.Signal(); this.exitedVR = new signals.Signal(); - // actions - - this.showModal = new signals.Signal(); - // notifications this.editorCleared = new signals.Signal(); diff --git a/src/editor/Toolbar.js b/src/editor/Toolbar.js index 97d20a06..3531476a 100644 --- a/src/editor/Toolbar.js +++ b/src/editor/Toolbar.js @@ -4,7 +4,9 @@ * @author mrdoob / http://mrdoob.com/ */ -function Toolbar(editor) { +function Toolbar(app) { + this.app = app; + var editor = this.app.editor; var signals = editor.signals; diff --git a/src/editor/Viewport.js b/src/editor/Viewport.js index a7d681a0..18605166 100644 --- a/src/editor/Viewport.js +++ b/src/editor/Viewport.js @@ -8,7 +8,9 @@ import UI from '../ui/UI'; * @author mrdoob / http://mrdoob.com/ */ -function Viewport(editor) { +function Viewport(app) { + this.app = app; + var editor = this.app.editor; var signals = editor.signals; diff --git a/src/event/editor/AutoSaveEvent.js b/src/event/editor/AutoSaveEvent.js index cbe69780..af262b80 100644 --- a/src/event/editor/AutoSaveEvent.js +++ b/src/event/editor/AutoSaveEvent.js @@ -15,7 +15,6 @@ AutoSaveEvent.prototype.constructor = AutoSaveEvent; AutoSaveEvent.prototype.start = function () { var signals = this.app.editor.signals; - var modal = this.app.modal; var _this = this; signals.geometryChanged.add(function () { @@ -48,9 +47,6 @@ AutoSaveEvent.prototype.start = function () { signals.historyChanged.add(function () { _this.SaveState(); }); - signals.showModal.add(function (content) { - modal.show(content); - }); }; AutoSaveEvent.prototype.stop = function () { diff --git a/src/event/editor/SetSceneEvent.js b/src/event/editor/SetSceneEvent.js index 15eb9163..c9fbe2f5 100644 --- a/src/event/editor/SetSceneEvent.js +++ b/src/event/editor/SetSceneEvent.js @@ -37,6 +37,13 @@ SetSceneEvent.prototype.onSetScene = function (scene) { editor.signals.sceneGraphChanged.active = false; + // // 当纹理为base64编码时,如果不设置complete=true,则three.js认为纹理未下载完成,会报错。 + // scene.traverse(function (n) { + // if (n instanceof THREE.Mesh && n.material.map != null && n.material.map.image != null) { + // n.material.map.image.complete = true; + // } + // }); + while (scene.children.length > 0) { editor.addObject(scene.children[0]); diff --git a/src/menu/Menubar.js b/src/menu/Menubar.js index 6bd08d82..64618d0e 100644 --- a/src/menu/Menubar.js +++ b/src/menu/Menubar.js @@ -13,7 +13,9 @@ import UI from '../ui/UI'; * @author mrdoob / http://mrdoob.com/ */ -function Menubar(editor) { +function Menubar(app) { + this.app = app; + var editor = this.app.editor; var container = new UI.Panel(); container.setId('menubar'); diff --git a/src/panel/Panel.js b/src/panel/Panel.js index d5699b2f..3a82ce7a 100644 --- a/src/panel/Panel.js +++ b/src/panel/Panel.js @@ -11,7 +11,9 @@ import UI from '../ui/UI'; * @author mrdoob / http://mrdoob.com/ */ -function Panel(editor) { +function Panel(app) { + this.app = app; + var editor = this.app.editor; var container = new UI.Panel(); container.setId('sidebar'); diff --git a/src/ui/Window.js b/src/ui/Window.js index e69de29b..0a676c82 100644 --- a/src/ui/Window.js +++ b/src/ui/Window.js @@ -0,0 +1,10 @@ +import Modal from './Modal'; + +function Window() { + Modal.call(this); +} + +Window.prototype = Object.create(Modal.prototype); +Window.prototype.constructor = Window; + +export default Window; \ No newline at end of file