From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 04 十一月 2024 10:22:45 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/insight/shelf/ShelfThree.js | 26 ++++++++++++++++++-------- 1 files changed, 18 insertions(+), 8 deletions(-) diff --git a/zy-acs-flow/src/map/insight/shelf/ShelfThree.js b/zy-acs-flow/src/map/insight/shelf/ShelfThree.js index 01b60c0..beb1c2d 100644 --- a/zy-acs-flow/src/map/insight/shelf/ShelfThree.js +++ b/zy-acs-flow/src/map/insight/shelf/ShelfThree.js @@ -87,7 +87,7 @@ // this.renderer.shadowMap.type = THREE.BasicShadowMap; // 鏈�浣庨槾褰� // renderer.toneMapping = THREE.ReinhardToneMapping; renderer.toneMapping = THREE.ACESFilmicToneMapping; - renderer.setPixelRatio(window.devicePixelRatio); + renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)); renderer.setSize(this.getFullWidth(), this.getFullHeight()); this.dom?.appendChild(renderer.domElement); return renderer; @@ -207,12 +207,13 @@ height * cameraPosScale, height * cameraPosScale ); - this.controls.target = new THREE.Vector3(0, maxHeight * 0.53, 0); + this.controls.target = new THREE.Vector3(0, maxHeight * 0.5, 0); } destroy = () => { cancelAnimationFrame(this.animationFrame); window.removeEventListener('resize', this.resizeHandler); + this.dom?.removeEventListener("click", this.handleClickEvent); if (this.scene) { while (this.scene.children.length > 0) { this.removeEntity(this.scene.children[0]); @@ -222,8 +223,13 @@ if (this.renderer) { this.renderer.dispose(); this.renderer.forceContextLoss(); - this.renderer.context = null; - this.renderer.domElement = null; + if (this.dom && this.renderer.domElement && this.dom.contains(this.renderer.domElement)) { + try { + this.dom.removeChild(this.renderer.domElement); + } catch (error) { + console.warn('Failed to remove renderer.domElement:', error); + } + } this.renderer = null; } if (this.composer) { @@ -238,12 +244,16 @@ this.controls.dispose(); this.controls = null; } - this.dom?.removeEventListener("click", this.handleClickEvent); + if (this.stats && this.stats.domElement && this.dom.contains(this.stats.domElement)) { + try { + this.dom.removeChild(this.stats.domElement); + } catch (error) { + console.warn('Failed to remove stats.domElement:', error); + } + } + this.camera = null; this.objects = []; - while (this.dom?.firstChild) { - this.dom.removeChild(this.dom.firstChild); - } } removeEntity = (object) => { -- Gitblit v1.9.1