Bläddra i källkod

OrbitControls: adding a mouseout listener which does exactly the same as mouseup.

mikaelgramont 9 år sedan
förälder
incheckning
c407a0470e
1 ändrade filer med 15 tillägg och 0 borttagningar
  1. 15 0
      examples/js/controls/OrbitControls.js

+ 15 - 0
examples/js/controls/OrbitControls.js

@@ -412,6 +412,7 @@ THREE.OrbitControls = function ( object, domElement ) {
 		if ( state !== STATE.NONE ) {
 			document.addEventListener( 'mousemove', onMouseMove, false );
 			document.addEventListener( 'mouseup', onMouseUp, false );
+			document.addEventListener( 'mouseout', onMouseOut, false );
 			scope.dispatchEvent( startEvent );
 		}
 
@@ -482,6 +483,19 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 		document.removeEventListener( 'mousemove', onMouseMove, false );
 		document.removeEventListener( 'mouseup', onMouseUp, false );
+		document.removeEventListener( 'mouseout', onMouseOut, false );
+		scope.dispatchEvent( endEvent );
+		state = STATE.NONE;
+
+	}
+
+	function onMouseOut( /* event */ ) {
+
+		if ( scope.enabled === false ) return;
+
+		document.removeEventListener( 'mousemove', onMouseMove, false );
+		document.removeEventListener( 'mouseup', onMouseUp, false );
+		document.removeEventListener( 'mouseout', onMouseOut, false );
 		scope.dispatchEvent( endEvent );
 		state = STATE.NONE;
 
@@ -705,6 +719,7 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 		document.removeEventListener( 'mousemove', onMouseMove, false );
 		document.removeEventListener( 'mouseup', onMouseUp, false );
+		document.removeEventListener( 'mouseout', onMouseOut, false );
 
 		window.removeEventListener( 'keydown', onKeyDown, false );