三个js破坏了渲染器

时间:2015-06-12 13:08:00

标签: javascript three.js

摧毁三个js实例的最佳方法是什么? 我发现当我删除画布并重新添加时,我的第一个渲染器仍然存在而且我有两个。

目前我是

  1. 删除所有事件侦听器
  2. 取消requestAnimationFrame
  3. 从其父级
  4. 中删除渲染器实例

2 个答案:

答案 0 :(得分:3)

怎么样?

  cancelAnimationFrame(this.id);// Stop the animation
    this.renderer.domElement.addEventListener('dblclick', null, false); //remove listener to render
    this.scene = null;
    this.projector = null;
    this.camera = null;
    this.controls = null;
    empty(this.modelContainer);

function empty(elem) {
    while (elem.lastChild) elem.removeChild(elem.lastChild);
}

这是对旧SO帖子的引用:How can I destroy THREEJS Scene?

答案 1 :(得分:1)

要销毁场景,请尝试:

scene = null;

删除网格:

scene.remove(mesh);