关掉工具窗口时取消场景事件,避免重复注册

This commit is contained in:
Next 2018-12-28 19:30:18 +08:00
parent 0422a4f25d
commit dd6a9fff54

View File

@ -31,11 +31,11 @@
<div slot="left" class="demo-split-pane" id="game_panel" style="display:flex;justify-content:left;align-items:center;height: 100vh;"> <div slot="left" class="demo-split-pane" id="game_panel" style="display:flex;justify-content:left;align-items:center;height: 100vh;">
<div id="top" style="position: absolute;top:0;"></div> <div id="top" style="position: absolute;top:0;"></div>
</div> </div>
<div slot="right" class="demo-split-pane no-padding" v-if="isDevMode"> <div slot="right" class="demo-split-pane no-padding">
<Split v-model="splitRight" mode="vertical"> <Split v-model="splitRight" mode="vertical">
<div slot="top" class="demo-split-pane" style="padding-left: 5px;"> <div slot="top" class="demo-split-pane" style="padding-left: 5px;">
<el-input placeholder="搜索节点" v-model="filterText" size="mini" id="searchInput"></el-input> <el-input placeholder="搜索节点" v-model="filterText" size="mini" id="searchInput"></el-input>
<el-tree :data="sceneTreeData" :draggable="true" :props="nodeProps" :default-expanded-keys="defaultExpandedKeys" <el-tree v-if="isDevMode" :data="sceneTreeData" :draggable="true" :props="nodeProps" :default-expanded-keys="defaultExpandedKeys"
empty-text="加载场景..." :node-key="'_id'" :expand-on-click-node="false" :filter-node-method="filterNode" ref="sceneTree" empty-text="加载场景..." :node-key="'_id'" :expand-on-click-node="false" :filter-node-method="filterNode" ref="sceneTree"
@node-click="handleNodeClick" style="min-width: 250px;height: 100%;overflow-x:hidden;overflow-y:auto;"> @node-click="handleNodeClick" style="min-width: 250px;height: 100%;overflow-x:hidden;overflow-y:auto;">
<span class="custom-tree-node" slot-scope="{ node, data }"> <span class="custom-tree-node" slot-scope="{ node, data }">
@ -152,15 +152,11 @@
</Split> </Split>
</div> </div>
</Split> </Split>
<div style="position: absolute;top:45px;left:10px;width: 200px;"> <div id="dev_switch" style="position: absolute;top:45px;left:10px;width: 200px;">
<el-switch <el-switch v-model="isDevMode" @change="handleChangeMode" active-color="#0099ff" inactive-color="gray">
v-model="isDevMode"
@change="handleChangeMode"
active-color="#13ce66"
inactive-color="gray">
</el-switch> </el-switch>
<el-tooltip :content="'ccc-devtools@Next v1.2.2'" placement="top"> <el-tooltip :content="'ccc-devtools@Next v1.2.2'" placement="top">
<Icon type="logo-github" size="24" @click="openGithub"/> <Icon type="logo-github" size="24" @click="openGithub" />
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
@ -213,12 +209,12 @@
}, },
outputNodeHandler(target) { outputNodeHandler(target) {
let i = 1; let i = 1;
while(window['temp'+i] !== undefined) { while (window['temp' + i] !== undefined) {
i++; i++;
} }
window['temp'+i] = this.$data.node; window['temp' + i] = this.$data.node;
console.log('temp' + i); console.log('temp' + i);
console.log(window['temp'+i]); console.log(window['temp' + i]);
}, },
outputComponentHandler(target) { outputComponentHandler(target) {
// TODO // TODO
@ -247,11 +243,11 @@
cc.director.on(cc.Director.EVENT_AFTER_SCENE_LAUNCH, () => { cc.director.on(cc.Director.EVENT_AFTER_SCENE_LAUNCH, () => {
this.$data.sceneTreeData = cc.director.getScene().children; this.$data.sceneTreeData = cc.director.getScene().children;
this.defaultExpandedKeys = [this.$data.sceneTreeData[0]._id]; this.defaultExpandedKeys = [this.$data.sceneTreeData[0]._id];
}); }, this);
cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LOADING, () => { cc.director.on(cc.Director.EVENT_BEFORE_SCENE_LOADING, () => {
this.$data.sceneTreeData = []; this.$data.sceneTreeData = [];
this.$data.node = null; this.$data.node = null;
}); }, this);
clearInterval(this.$data.intervalId); clearInterval(this.$data.intervalId);
} else { } else {
console.log('cc is not init'); console.log('cc is not init');
@ -261,12 +257,15 @@
setTimeout(initWin, 0); setTimeout(initWin, 0);
}, },
closeDevMode() { closeDevMode() {
this.$data.node = null;
this.$data.sceneTreeData = [];
cc.director.targetOff(this);
clearInterval(this.$data.intervalId); clearInterval(this.$data.intervalId);
document.body.appendChild(document.getElementsByClassName('toolbar')[0]); document.body.appendChild(document.getElementsByClassName('toolbar')[0]);
document.body.appendChild(document.getElementById('content')); document.body.appendChild(document.getElementById('content'));
}, },
handleChangeMode(data) { handleChangeMode(data) {
data?this.openDevMode():this.closeDevMode(); data ? this.openDevMode() : this.closeDevMode();
} }
}, },
watch: { watch: {
@ -274,8 +273,15 @@
this.$refs.sceneTree.filter(val); this.$refs.sceneTree.filter(val);
} }
}, },
created: function() { created: function () {
let toolbar = document.getElementsByClassName('toolbar')[0];
// toolbar.insertBefore(document.getElementById('dev_switch'), toolbar.firstChild);
document.body.insertBefore(document.getElementById('app'), document.body.firstChild); document.body.insertBefore(document.getElementById('app'), document.body.firstChild);
} }
}); });
</script> </script>
<script>
// (function(){var script=document.createElement('script');script.src='https://rawgit.com/paulirish/memory-stats.js/master/bookmarklet.js';document.head.appendChild(script);})()
// (function(){var script=document.createElement('script');script.onload=function(){var stats=new Stats();document.body.appendChild(stats.dom);requestAnimationFrame(function loop(){stats.update();requestAnimationFrame(loop)});};script.src='//mrdoob.github.io/stats.js/build/stats.min.js';document.head.appendChild(script);})()
</script>