Sfoglia il codice sorgente

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

Daniel Taub 11 anni fa
parent
commit
bf4d930cce
2 ha cambiato i file con 16 aggiunte e 13 eliminazioni
  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 );