Browse Source

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

Implemented similar fix to TransformControls using previous and current
pointer positions.
Grant Windes 12 năm trước cách đây
mục cha
commit
5aa386ddf6
1 tập tin đã thay đổi với 22 bổ sung4 xóa
  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 ) {