【发布时间】:2022-01-16 23:20:08
【问题描述】:
我正在尝试使用以下方法销毁(或销毁或处置) Three.JS 的“实例”:
完整示例:https://jsfiddle.net/v7oLzs4m/58/
function kill() {
const rendererDomWas = renderer.domElement;
renderer.dispose();
controls.dispose();
renderer = scene = camera = controls = null;
document.body.removeChild( rendererDomWas );
shouldRender = false;
}
function animate() {
if(!shouldRender) {return} // no more requesting animation frames if 'shouldRender' is false
frameID = window.requestAnimationFrame( animate );
renderer.render( scene, camera );
}
(即在 shouldRender 为 false 时,从 touching 渲染器处理、设置对 null 的引用并停止绘制循环)
一开始它似乎可以工作(渲染器内容停止显示)但是当我重新创建实例时,它再也没有回来。
就好像有什么东西还在……持有 GLContext 以防止它再次被调用。
为什么我不能重新创建 Three.JS 的新实例?
【问题讨论】:
标签: javascript three.js