Browse Source

Editor: Nicer camera-drag, object click behaviour.

Mr.doob 13 years ago
parent
commit
fb40ab8932
2 changed files with 21 additions and 3 deletions
  1. 4 3
      editor/js/UI.js
  2. 17 0
      editor/js/ui/Viewport.js

+ 4 - 3
editor/js/UI.js

@@ -245,7 +245,7 @@ UI.Panel.prototype.add = function () {
 // Text
 
 UI.Text = function ( position ) {
-	
+
 	UI.Element.call( this );
 
 	this.dom = document.createElement( 'span' );
@@ -468,7 +468,8 @@ UI.Number = function ( position ) {
 
 	this.onChangeCallback = null;
 
-	var onMouseDownValue, distance;
+	var distance = 0;
+	var onMouseDownValue = 0;
 
 	var onMouseDown = function ( event ) {
 
@@ -503,7 +504,7 @@ UI.Number = function ( position ) {
 		document.removeEventListener( 'mousemove', onMouseMove, false );
 		document.removeEventListener( 'mouseup', onMouseUp, false );
 
-		if ( distance == 0 ) console.log( 'click' );
+		if ( Math.abs( distance ) > 0 ) console.log( 'click' );
 
 	};
 

+ 17 - 0
editor/js/ui/Viewport.js

@@ -76,10 +76,27 @@ var Viewport = function ( signals ) {
 
 	var projector = new THREE.Projector();
 
+	var distance = 0;
+
 	container.dom.addEventListener( 'mousedown', function ( event ) {
 
 		event.preventDefault();
 
+		distance = 0;
+
+	}, false );
+
+	container.dom.addEventListener( 'mousemove', function ( event ) {
+
+		distance += event.movementX || event.webkitMovementX || event.mozMovementX || 0;
+		distance += event.movementY || event.webkitMovementY || event.mozMovementY || 0;
+
+	}, false );
+
+	container.dom.addEventListener( 'mouseup', function ( event ) {
+
+		if ( Math.abs( distance ) > 1 ) return;
+
 		var vector = new THREE.Vector3(
 			( ( event.clientX - container.dom.offsetLeft ) / container.dom.offsetWidth ) * 2 - 1,
 			- ( ( event.clientY - container.dom.offsetTop ) / container.dom.offsetHeight ) * 2 + 1,