提交 0d94e17e 编写于 作者: M Mr.doob

Object3D.removed(): Moved descendants traversal into the renderer. See #5269.

上级 4703010d
...@@ -358,17 +358,9 @@ THREE.Object3D.prototype = { ...@@ -358,17 +358,9 @@ THREE.Object3D.prototype = {
object.parent = undefined; object.parent = undefined;
this.children.splice( index, 1 );
object.dispatchEvent( { type: 'removed' } ); object.dispatchEvent( { type: 'removed' } );
// notify renderer object and descendants were removed. this.children.splice( index, 1 );
object.traverse( function ( child ) {
child.dispatchEvent( { type: 'removedFromScene' } );
} );
} }
......
...@@ -513,13 +513,17 @@ THREE.WebGLRenderer = function ( parameters ) { ...@@ -513,13 +513,17 @@ THREE.WebGLRenderer = function ( parameters ) {
// Events // Events
var onObjectRemovedFromScene = function ( event ) { var onObjectRemoved = function ( event ) {
var object = event.target; var object = event.target;
object.removeEventListener( 'removedFromScene', onObjectRemovedFromScene ); object.removeEventListener( 'remove', onObjectRemoved );
removeObject( object ) object.traverse( function ( child ) {
removeObject( child );
} );
}; };
...@@ -3553,7 +3557,7 @@ THREE.WebGLRenderer = function ( parameters ) { ...@@ -3553,7 +3557,7 @@ THREE.WebGLRenderer = function ( parameters ) {
object._modelViewMatrix = new THREE.Matrix4(); object._modelViewMatrix = new THREE.Matrix4();
object._normalMatrix = new THREE.Matrix3(); object._normalMatrix = new THREE.Matrix3();
object.addEventListener( 'removedFromScene', onObjectRemovedFromScene ); object.addEventListener( 'removed', onObjectRemoved );
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册