From 2ade0a881a00bf7ebc6cd6067f52d3a268508111 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 28 三月 2024 14:12:49 +0800 Subject: [PATCH] # --- zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js | 31 +++++++++++++++++++++++++++++-- 1 files changed, 29 insertions(+), 2 deletions(-) diff --git a/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js b/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js index c7a6fd8..fc082f0 100644 --- a/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js +++ b/zy-asrs-flow/src/pages/map/drawer/shelf/shelfThree.js @@ -167,8 +167,35 @@ destroy = () => { cancelAnimationFrame(this.animationFrame); window.removeEventListener('resize', this.resizeHandler); - this.renderer.dispose(); - this.controls.dispose(); + if (this.scene) { + while (this.scene.children.length > 0) { + this.removeEntity(this.scene.children[0]); + } + this.scene = null; + } + if (this.renderer) { + this.renderer.dispose(); + this.renderer.forceContextLoss(); + this.renderer.context = null; + this.renderer.domElement = null; + this.renderer = null; + } + if (this.controls) { + this.controls.dispose(); + this.controls = null; + } + this.camera = null; + this.objects = []; + while (this.dom?.firstChild) { + this.dom.removeChild(this.dom.firstChild); + } + } + + removeEntity = (object) => { + if (object.material) object.material.dispose(); + if (object.geometry) object.geometry.dispose(); + if (object.texture) object.texture.dispose(); + this.scene.remove(object); } }; -- Gitblit v1.9.1