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

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

上级 4703010d
......@@ -358,17 +358,9 @@ THREE.Object3D.prototype = {
object.parent = undefined;
this.children.splice( index, 1 );
object.dispatchEvent( { type: 'removed' } );
// notify renderer object and descendants were removed.
object.traverse( function ( child ) {
child.dispatchEvent( { type: 'removedFromScene' } );
} );
this.children.splice( index, 1 );
}
......
......@@ -513,13 +513,17 @@ THREE.WebGLRenderer = function ( parameters ) {
// Events
var onObjectRemovedFromScene = function ( event ) {
var onObjectRemoved = function ( event ) {
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 ) {
object._modelViewMatrix = new THREE.Matrix4();
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.
先完成此消息的编辑!
想要评论请 注册