提交 03759e1e 编写于 作者: M Mr.doob

Object3D now dispatching added/removed events when object is removed from it's...

Object3D now dispatching added/removed events when object is removed from it's parent. CSS3D can nore auto-remove DOM elements. See #3575.
上级 dbcc13bf
......@@ -19,7 +19,6 @@
background: -o-radial-gradient(center, ellipse cover, rgba(43,45,48,1) 0%,rgba(0,0,0,1) 100%); /* Opera 12+ */
background: -ms-radial-gradient(center, ellipse cover, rgba(43,45,48,1) 0%,rgba(0,0,0,1) 100%); /* IE10+ */
background: radial-gradient(ellipse at center, rgba(43,45,48,1) 0%,rgba(0,0,0,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2b2d30', endColorstr='#000000',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
margin: 0;
font-family: Arial;
......@@ -339,21 +338,8 @@
for ( var i = 0; i < objects.length; i ++ ) {
var object = objects[ i ];
object.parent.remove( object );
if ( object.element.parentNode === renderer.cameraElement ) {
renderer.cameraElement.removeChild( object.element );
}
if ( object.userData.joint ) {
object.userData.joint.parent.remove( object.userData.joint );
}
}
objects = [];
......
......@@ -8,12 +8,22 @@ THREE.CSS3DObject = function ( element ) {
THREE.Object3D.call( this );
this.element = element;
this.element.style.position = "absolute";
this.element.style.position = 'absolute';
this.element.style.WebkitTransformStyle = 'preserve-3d';
this.element.style.MozTransformStyle = 'preserve-3d';
this.element.style.oTransformStyle = 'preserve-3d';
this.element.style.transformStyle = 'preserve-3d';
this.addEventListener( 'removed', function () {
if ( this.element.parentNode !== null ) {
this.element.parentNode.removeChild( this.element );
}
} );
};
THREE.CSS3DObject.prototype = Object.create( THREE.Object3D.prototype );
......
......@@ -307,6 +307,8 @@ THREE.Object3D.prototype = {
}
object.parent = this;
object.dispatchEvent( { type: 'added' } );
this.children.push( object );
// add to scene
......@@ -336,6 +338,8 @@ THREE.Object3D.prototype = {
if ( index !== - 1 ) {
object.parent = undefined;
object.dispatchEvent( { type: 'removed' } );
this.children.splice( index, 1 );
// remove from scene
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册