私は3つのjsオブジェクトを作成し、いくつかの子供を追加しました。子の長さを0に変更したところ、オブジェクトが画面から消えました。オブジェクトによって画面とメモリが完全に削除されるのでしょうか?より多くの球3子子の長さ
のために繰り返さ手順上記
var balls = new THREE.Object3D(); // parent
作成する子供のための
var geometry = new THREE.SphereGeometry(5, 32, 32);
var material = new THREE.MeshPhongMaterial({color: 0x0f0ff0, shininess: 50, transparent: true, opacity: 1});
var sphere = new THREE.Mesh(geometry, material);
sphere.position.x = scale('some random value');
sphere.position.y = scale('some random value');
balls.add(sphere);
、コンソールに、私はこのシーンからすべての球を削除
balls.children = [];
を書きました。それはメモリから球体もすべて削除しますか?
http://stackoverflow.com/a/8467563/3264799ガベージコレクションが必要なので、「正しい」ことをしています。しかし、Three.js-wayは 'scene.remove(child)'メソッドを通して各要素をシーンから削除することです。とにかく要素の作成と制御を担当するので、Three.jsがそれを望むようにするのは良い方法です。時々ライブラリは混乱するかもしれません、それらが何かについての情報を含む私的な変数を持っていて、それが突然削除されると、それはシステムを破壊します。 – ascx