فهرست منبع

Internet Explorer fix for UI.Number and UI.Integer slider.

Implemented similar fix to TransformControls using previous and current
pointer positions.
Grant Windes 12 سال پیش
والد
کامیت
5aa386ddf6
1فایلهای تغییر یافته به همراه22 افزوده شده و 4 حذف شده
  1. 22 4
      editor/js/libs/ui.js

+ 22 - 4
editor/js/libs/ui.js

@@ -596,6 +596,9 @@ UI.Number = function ( number ) {
 	var distance = 0;
 	var onMouseDownValue = 0;
 
+	var pointer = new THREE.Vector2();
+	var pointerOld = new THREE.Vector2();
+
 	var onMouseDown = function ( event ) {
 
 		event.preventDefault();
@@ -604,6 +607,8 @@ UI.Number = function ( number ) {
 
 		onMouseDownValue = parseFloat( dom.value );
 
+		pointerOld.set( event.clientX, event.clientY );
+
 		document.addEventListener( 'mousemove', onMouseMove, false );
 		document.addEventListener( 'mouseup', onMouseUp, false );
 
@@ -613,8 +618,10 @@ UI.Number = function ( number ) {
 
 		var currentValue = dom.value;
 
-		var movementX = event.movementX || event.webkitMovementX || event.mozMovementX || 0;
-		var movementY = event.movementY || event.webkitMovementY || event.mozMovementY || 0;
+		pointer.set( event.clientX, event.clientY );
+
+		var movementX = pointer.x - pointerOld.x;
+		var movementY = pointer.y - pointerOld.y;
 
 		distance += movementX - movementY;
 
@@ -624,6 +631,8 @@ UI.Number = function ( number ) {
 
 		if ( currentValue !== dom.value ) dom.dispatchEvent( changeEvent );
 
+		pointerOld.set( event.clientX, event.clientY );
+
 	};
 
 	var onMouseUp = function ( event ) {
@@ -747,6 +756,9 @@ UI.Integer = function ( number ) {
 	var distance = 0;
 	var onMouseDownValue = 0;
 
+	var pointer = new THREE.Vector2();
+	var pointerOld = new THREE.Vector2();
+
 	var onMouseDown = function ( event ) {
 
 		event.preventDefault();
@@ -755,6 +767,8 @@ UI.Integer = function ( number ) {
 
 		onMouseDownValue = parseFloat( dom.value );
 
+		pointerOld.set( event.clientX, event.clientY );
+
 		document.addEventListener( 'mousemove', onMouseMove, false );
 		document.addEventListener( 'mouseup', onMouseUp, false );
 
@@ -764,8 +778,10 @@ UI.Integer = function ( number ) {
 
 		var currentValue = dom.value;
 
-		var movementX = event.movementX || event.webkitMovementX || event.mozMovementX || 0;
-		var movementY = event.movementY || event.webkitMovementY || event.mozMovementY || 0;
+		pointer.set( event.clientX, event.clientY );
+
+		var movementX = pointer.x - pointerOld.x;
+		var movementY = pointer.y - pointerOld.y;
 
 		distance += movementX - movementY;
 
@@ -775,6 +791,8 @@ UI.Integer = function ( number ) {
 
 		if ( currentValue !== dom.value ) dom.dispatchEvent( changeEvent );
 
+		pointerOld.set( event.clientX, event.clientY );
+
 	};
 
 	var onMouseUp = function ( event ) {