Explorar el Código

changing event names as per requested, and using new events in editor viewport for more reliable disabling of editorcontrols

Daniel Taub hace 11 años
padre
commit
bf4d930cce
Se han modificado 2 ficheros con 16 adiciones y 13 borrados
  1. 10 7
      editor/js/Viewport.js
  2. 6 6
      examples/js/controls/TransformControls.js

+ 10 - 7
editor/js/Viewport.js

@@ -41,22 +41,25 @@ var Viewport = function ( editor ) {
 	var transformControls = new THREE.TransformControls( camera, container.dom );
 	transformControls.addEventListener( 'change', function () {
 
-		controls.enabled = true;
+		render();
 
-		if ( transformControls.axis !== null ) {
+	} );
+	transformControls.addEventListener( 'objectChange', function () {
 
-			controls.enabled = false;
+		signals.objectChanged.dispatch( transformControls.object );
 
-		}
+	} );
+	transformControls.addEventListener( 'mouseDown', function () {
 
-		render();
+		controls.enabled = false;
 
 	} );
-	transformControls.addEventListener( 'objectChange', function () {
+	transformControls.addEventListener( 'mouseUp', function () {
 
-		signals.objectChanged.dispatch( transformControls.object );
+		controls.enabled = true;
 
 	} );
+
 	sceneHelpers.add( transformControls );
 
 	// fog

+ 6 - 6
examples/js/controls/TransformControls.js

@@ -568,8 +568,8 @@
 		var _plane = "XY";
 
 		var changeEvent = { type: "change" };
-		var clickEvent = { type: "click" };
-		var clickDoneEvent = { type: "clickDone", mode: _mode };
+		var mouseDownEvent = { type: "mouseDown" };
+		var mouseUpEvent = { type: "mouseUp", mode: _mode };
 		var objectChangeEvent = { type: "objectChange" };
 
 		var ray = new THREE.Raycaster();
@@ -760,7 +760,7 @@
 
 				if ( intersect ) {
 
-					scope.dispatchEvent( clickEvent );
+					scope.dispatchEvent( mouseDownEvent );
 
 					scope.axis = intersect.object.name;
 
@@ -961,9 +961,9 @@
 
 		function onPointerUp( event ) {
 
-			if ( _dragging ) {
-				clickDoneEvent.mode = _mode;
-				scope.dispatchEvent( clickDoneEvent )
+			if ( _dragging && !!scope.axis ) {
+				mouseUpEvent.mode = _mode;
+				scope.dispatchEvent( mouseUpEvent )
 			}
 			_dragging = false;
 			onPointerHover( event );