Просмотр исходного кода

Merge pull request #6204 from valette/patch-4

Allow the use of TransformControls simultaneously with other controls
Ricardo Cabello 10 лет назад
Родитель
Сommit
a577982c08
1 измененных файлов с 22 добавлено и 5 удалено
  1. 22 5
      examples/js/controls/TransformControls.js

+ 22 - 5
examples/js/controls/TransformControls.js

@@ -632,6 +632,23 @@
 		domElement.addEventListener( "touchcancel", onPointerUp, false );
 		domElement.addEventListener( "touchleave", onPointerUp, false );
 
+		this.dispose = function () {
+			domElement.removeEventListener( "mousedown", onPointerDown );
+			domElement.removeEventListener( "touchstart", onPointerDown );
+
+			domElement.removeEventListener( "mousemove", onPointerHover );
+			domElement.removeEventListener( "touchmove", onPointerHover );
+
+			domElement.removeEventListener( "mousemove", onPointerMove );
+			domElement.removeEventListener( "touchmove", onPointerMove );
+
+			domElement.removeEventListener( "mouseup", onPointerUp );
+			domElement.removeEventListener( "mouseout", onPointerUp );
+			domElement.removeEventListener( "touchend", onPointerUp );
+			domElement.removeEventListener( "touchcancel", onPointerUp );
+			domElement.removeEventListener( "touchleave", onPointerUp );
+		};
+
 		this.attach = function ( object ) {
 
 			scope.object = object;
@@ -726,8 +743,6 @@
 
 			if ( scope.object === undefined || _dragging === true ) return;
 
-			event.preventDefault();
-
 			var pointer = event.changedTouches ? event.changedTouches[ 0 ] : event;
 
 			var intersect = intersectObjects( pointer, scope.gizmo[_mode].pickers.children );
@@ -738,6 +753,8 @@
 
 				axis = intersect.object.name;
 
+				event.preventDefault();
+
 			}
 
 			if ( scope.axis !== axis ) {
@@ -754,9 +771,6 @@
 
 			if ( scope.object === undefined || _dragging === true ) return;
 
-			event.preventDefault();
-			event.stopPropagation();
-
 			var pointer = event.changedTouches ? event.changedTouches[ 0 ] : event;
 
 			if ( pointer.button === 0 || pointer.button === undefined ) {
@@ -765,6 +779,9 @@
 
 				if ( intersect ) {
 
+					event.preventDefault();
+					event.stopPropagation();
+
 					scope.dispatchEvent( mouseDownEvent );
 
 					scope.axis = intersect.object.name;