浏览代码

Add start and end events to OrbitControls

This mirrors the changes in github PR gh-4097 for Trackball controls.
Jason Grout 11 年之前
父节点
当前提交
5ea0d096d5
共有 1 个文件被更改,包括 9 次插入1 次删除
  1. 9 1
      examples/js/controls/OrbitControls.js

+ 9 - 1
examples/js/controls/OrbitControls.js

@@ -106,6 +106,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 	// events
 	// events
 
 
 	var changeEvent = { type: 'change' };
 	var changeEvent = { type: 'change' };
+	var startEvent = { type: 'start'};
+	var endEvent = { type: 'end'};
 
 
 	this.rotateLeft = function ( angle ) {
 	this.rotateLeft = function ( angle ) {
 
 
@@ -319,6 +321,7 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 		scope.domElement.addEventListener( 'mousemove', onMouseMove, false );
 		scope.domElement.addEventListener( 'mousemove', onMouseMove, false );
 		scope.domElement.addEventListener( 'mouseup', onMouseUp, false );
 		scope.domElement.addEventListener( 'mouseup', onMouseUp, false );
+		scope.dispatchEvent( startEvent );
 
 
 	}
 	}
 
 
@@ -387,7 +390,7 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 		scope.domElement.removeEventListener( 'mousemove', onMouseMove, false );
 		scope.domElement.removeEventListener( 'mousemove', onMouseMove, false );
 		scope.domElement.removeEventListener( 'mouseup', onMouseUp, false );
 		scope.domElement.removeEventListener( 'mouseup', onMouseUp, false );
-
+		scope.dispatchEvent( endEvent );
 		state = STATE.NONE;
 		state = STATE.NONE;
 
 
 	}
 	}
@@ -421,6 +424,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 		}
 		}
 
 
 		scope.update();
 		scope.update();
+		scope.dispatchEvent( startEvent );
+		scope.dispatchEvent( endEvent );
 
 
 	}
 	}
 
 
@@ -496,6 +501,8 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 		}
 		}
 
 
+		scope.dispatchEvent( startEvent );
+
 	}
 	}
 
 
 	function touchmove( event ) {
 	function touchmove( event ) {
@@ -581,6 +588,7 @@ THREE.OrbitControls = function ( object, domElement ) {
 
 
 		if ( scope.enabled === false ) return;
 		if ( scope.enabled === false ) return;
 
 
+		scope.dispatchEvent( endEvent );
 		state = STATE.NONE;
 		state = STATE.NONE;
 
 
 	}
 	}