From f5cef8a9611f268415665a8bfcd9c6471ee5da88 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 02 九月 2025 14:01:32 +0800
Subject: [PATCH] 1
---
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