Browse Source

Merge pull request #16283 from arodic/feature/PointerLockControls-change-event

Added change event to PointerLockControls.
Mr.doob 6 years ago
parent
commit
ba4069a20a
1 changed files with 14 additions and 4 deletions
  1. 14 4
      examples/js/controls/PointerLockControls.js

+ 14 - 4
examples/js/controls/PointerLockControls.js

@@ -5,11 +5,19 @@
 
 THREE.PointerLockControls = function ( camera, domElement ) {
 
-	var scope = this;
-
 	this.domElement = domElement || document.body;
 	this.isLocked = false;
 
+	//
+	// internals
+	//
+
+	var scope = this;
+
+	var changeEvent = { type: 'change' };
+	var lockEvent = { type: 'lock' };
+	var unlockEvent = { type: 'unlock' };
+
 	var euler = new THREE.Euler( 0, 0, 0, 'YXZ' );
 
 	var PI_2 = Math.PI / 2;
@@ -30,19 +38,21 @@ THREE.PointerLockControls = function ( camera, domElement ) {
 
 		camera.quaternion.setFromEuler( euler );
 
+		scope.dispatchEvent( changeEvent );
+
 	}
 
 	function onPointerlockChange() {
 
 		if ( document.pointerLockElement === scope.domElement ) {
 
-			scope.dispatchEvent( { type: 'lock' } );
+			scope.dispatchEvent( lockEvent );
 
 			scope.isLocked = true;
 
 		} else {
 
-			scope.dispatchEvent( { type: 'unlock' } );
+			scope.dispatchEvent( unlockEvent );
 
 			scope.isLocked = false;