浏览代码

TrackballControls: Removed isMouseDown logic.

Mr.doob 4 年之前
父节点
当前提交
9dca824496
共有 2 个文件被更改,包括 18 次插入14 次删除
  1. 9 7
      examples/js/controls/TrackballControls.js
  2. 9 7
      examples/jsm/controls/TrackballControls.js

+ 9 - 7
examples/js/controls/TrackballControls.js

@@ -479,8 +479,6 @@ THREE.TrackballControls = function ( object, domElement ) {
 
 	}
 
-	var isMouseDown = false;
-
 	function onMouseDown( event ) {
 
 		event.preventDefault();
@@ -528,15 +526,16 @@ THREE.TrackballControls = function ( object, domElement ) {
 
 		}
 
-		scope.dispatchEvent( startEvent );
+		scope.domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
+		scope.domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );
 
-		isMouseDown = true;
+		scope.dispatchEvent( startEvent );
 
 	}
 
 	function onMouseMove( event ) {
 
-		if ( isMouseDown === false ) return;
+		if ( scope.enabled === false ) return;
 
 		event.preventDefault();
 		event.stopPropagation();
@@ -562,14 +561,17 @@ THREE.TrackballControls = function ( object, domElement ) {
 
 	function onMouseUp( event ) {
 
+		if ( scope.enabled === false ) return;
+
 		event.preventDefault();
 		event.stopPropagation();
 
 		_state = STATE.NONE;
 
-		scope.dispatchEvent( endEvent );
+		scope.domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove );
+		scope.domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp );
 
-		isMouseDown = false;
+		scope.dispatchEvent( endEvent );
 
 	}
 

+ 9 - 7
examples/jsm/controls/TrackballControls.js

@@ -485,8 +485,6 @@ var TrackballControls = function ( object, domElement ) {
 
 	}
 
-	var isMouseDown = false;
-
 	function onMouseDown( event ) {
 
 		event.preventDefault();
@@ -534,15 +532,16 @@ var TrackballControls = function ( object, domElement ) {
 
 		}
 
-		scope.dispatchEvent( startEvent );
+		scope.domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
+		scope.domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );
 
-		isMouseDown = true;
+		scope.dispatchEvent( startEvent );
 
 	}
 
 	function onMouseMove( event ) {
 
-		if ( isMouseDown === false ) return;
+		if ( scope.enabled === false ) return;
 
 		event.preventDefault();
 		event.stopPropagation();
@@ -568,14 +567,17 @@ var TrackballControls = function ( object, domElement ) {
 
 	function onMouseUp( event ) {
 
+		if ( scope.enabled === false ) return;
+
 		event.preventDefault();
 		event.stopPropagation();
 
 		_state = STATE.NONE;
 
-		scope.dispatchEvent( endEvent );
+		scope.domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove );
+		scope.domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp );
 
-		isMouseDown = false;
+		scope.dispatchEvent( endEvent );
 
 	}