Browse Source

fix memory leaks

yomotsu 7 years ago
parent
commit
3b8030fdf9
1 changed files with 12 additions and 1 deletions
  1. 12 1
      examples/js/renderers/CSS3DRenderer.js

+ 12 - 1
examples/js/renderers/CSS3DRenderer.js

@@ -185,8 +185,9 @@ THREE.CSS3DRenderer = function () {
 
 			var element = object.element;
 			var cachedStyle = cache.objects[ object.id ] && cache.objects[ object.id ].style;
+			var firstTime = cachedStyle === undefined;
 
-			if ( cachedStyle === undefined || cachedStyle !== style ) {
+			if ( firstTime || cachedStyle !== style ) {
 
 				element.style.WebkitTransform = style;
 				element.style.transform = style;
@@ -201,6 +202,16 @@ THREE.CSS3DRenderer = function () {
 
 			}
 
+			if ( firstTime ) {
+
+				object.addEventListener( 'removed', function () {
+
+					delete cache.objects[ object.id ];
+
+				} );
+
+			}
+
 			if ( element.parentNode !== cameraElement ) {
 
 				cameraElement.appendChild( element );