2
0
Эх сурвалжийг харах

OrbitControls: Removed isMouseDown logic.

Mr.doob 4 жил өмнө
parent
commit
f7455b8676

+ 7 - 10
examples/js/controls/OrbitControls.js

@@ -814,8 +814,6 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 	}
 	}
 
 
-	var isMouseDown = false;
-
 	function onMouseDown( event ) {
 	function onMouseDown( event ) {
 
 
 		// Prevent the browser from scrolling.
 		// Prevent the browser from scrolling.
@@ -915,7 +913,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 		if ( state !== STATE.NONE ) {
 		if ( state !== STATE.NONE ) {
 
 
-			isMouseDown = true;
+			scope.domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
+			scope.domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );
 
 
 			scope.dispatchEvent( startEvent );
 			scope.dispatchEvent( startEvent );
 
 
@@ -925,7 +924,7 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 	function onMouseMove( event ) {
 	function onMouseMove( event ) {
 
 
-		if ( isMouseDown === false ) return;
+		if ( scope.enabled === false ) return;
 
 
 		event.preventDefault();
 		event.preventDefault();
 
 
@@ -961,16 +960,17 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 	function onMouseUp( event ) {
 	function onMouseUp( event ) {
 
 
-		if ( isMouseDown === false ) return;
+		if ( scope.enabled === false ) return;
 
 
 		handleMouseUp( event );
 		handleMouseUp( event );
 
 
+		scope.domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove, false );
+		scope.domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp, false );
+
 		scope.dispatchEvent( endEvent );
 		scope.dispatchEvent( endEvent );
 
 
 		state = STATE.NONE;
 		state = STATE.NONE;
 
 
-		isMouseDown = false;
-
 	}
 	}
 
 
 	function onMouseWheel( event ) {
 	function onMouseWheel( event ) {
@@ -1170,9 +1170,6 @@ THREE.OrbitControls = function ( object, domElement ) {
 	scope.domElement.addEventListener( 'touchend', onTouchEnd, false );
 	scope.domElement.addEventListener( 'touchend', onTouchEnd, false );
 	scope.domElement.addEventListener( 'touchmove', onTouchMove, false );
 	scope.domElement.addEventListener( 'touchmove', onTouchMove, false );
 
 
-	scope.domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
-	scope.domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );
-
 	scope.domElement.addEventListener( 'keydown', onKeyDown, false );
 	scope.domElement.addEventListener( 'keydown', onKeyDown, false );
 
 
 	// make sure element can receive keys.
 	// make sure element can receive keys.

+ 7 - 10
examples/jsm/controls/OrbitControls.js

@@ -822,8 +822,6 @@ var OrbitControls = function ( object, domElement ) {
 
 
 	}
 	}
 
 
-	var isMouseDown = false;
-
 	function onMouseDown( event ) {
 	function onMouseDown( event ) {
 
 
 		// Prevent the browser from scrolling.
 		// Prevent the browser from scrolling.
@@ -923,7 +921,8 @@ var OrbitControls = function ( object, domElement ) {
 
 
 		if ( state !== STATE.NONE ) {
 		if ( state !== STATE.NONE ) {
 
 
-			isMouseDown = true;
+			scope.domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
+			scope.domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );
 
 
 			scope.dispatchEvent( startEvent );
 			scope.dispatchEvent( startEvent );
 
 
@@ -933,7 +932,7 @@ var OrbitControls = function ( object, domElement ) {
 
 
 	function onMouseMove( event ) {
 	function onMouseMove( event ) {
 
 
-		if ( isMouseDown === false ) return;
+		if ( scope.enabled === false ) return;
 
 
 		event.preventDefault();
 		event.preventDefault();
 
 
@@ -969,16 +968,17 @@ var OrbitControls = function ( object, domElement ) {
 
 
 	function onMouseUp( event ) {
 	function onMouseUp( event ) {
 
 
-		if ( isMouseDown === false ) return;
+		if ( scope.enabled === false ) return;
 
 
 		handleMouseUp( event );
 		handleMouseUp( event );
 
 
+		scope.domElement.ownerDocument.removeEventListener( 'pointermove', onPointerMove, false );
+		scope.domElement.ownerDocument.removeEventListener( 'pointerup', onPointerUp, false );
+
 		scope.dispatchEvent( endEvent );
 		scope.dispatchEvent( endEvent );
 
 
 		state = STATE.NONE;
 		state = STATE.NONE;
 
 
-		isMouseDown = false;
-
 	}
 	}
 
 
 	function onMouseWheel( event ) {
 	function onMouseWheel( event ) {
@@ -1178,9 +1178,6 @@ var OrbitControls = function ( object, domElement ) {
 	scope.domElement.addEventListener( 'touchend', onTouchEnd, false );
 	scope.domElement.addEventListener( 'touchend', onTouchEnd, false );
 	scope.domElement.addEventListener( 'touchmove', onTouchMove, false );
 	scope.domElement.addEventListener( 'touchmove', onTouchMove, false );
 
 
-	scope.domElement.ownerDocument.addEventListener( 'pointermove', onPointerMove, false );
-	scope.domElement.ownerDocument.addEventListener( 'pointerup', onPointerUp, false );
-
 	scope.domElement.addEventListener( 'keydown', onKeyDown, false );
 	scope.domElement.addEventListener( 'keydown', onKeyDown, false );
 
 
 	// make sure element can receive keys.
 	// make sure element can receive keys.