Преглед на файлове

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

Daniel Taub преди 11 години
родител
ревизия
bf4d930cce
променени са 2 файла, в които са добавени 16 реда и са изтрити 13 реда
  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 );