2014-01-30 90 views
11

我创建了Threejs场景,添加了相机,灯光和各种物体。如何销毁THREEJS场景?

问题很简单:我该如何销毁场景?从现场移除所有组件?

我需要销毁场景,因为我做不是想将任务委托给垃圾收集器。

+0

有什么不好的垃圾收集器?创建一个新的场景并且不要在旧的场景中指出变量应该足以让它被销毁。无论如何,下面的解决方案都是一样的。我错过了什么,或者这个“毁灭”实际上没有意义吗? – lot

回答

21

我用这个:

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); 

的方法是空的替代品jQuery的空,你可以使用它:

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

在我的项目中很好地清理和重新启动场景。 如果你发现事端更有效率,请张贴您的解决方案;) –

+1

TOP!我离开“cancelAnimationFrame”,我不知道它! –

+1

这是什么?场景的画布父级? – Martin