[英]exit pointerlockcontrols three.js not working
I have the following code to lock the cursor (this works fine): 我有以下代码来锁定光标(可以正常工作):
var element = document.body;
var controls;
var instructions = document.getElementById( 'start' );
var havePointerLock = 'pointerLockElement' in document || 'mozPointerLockElement' in document || 'webkitPointerLockElement' in document;
if ( havePointerLock ) {
var pointerlockchange = function ( event ) {
if ( document.pointerLockElement === element || document.mozPointerLockElement === element || document.webkitPointerLockElement === element ) {
controlsEnabled = true;
controls.enabled = true;
} else {
controlsEnabled = false;
controls.enabled = false;
instructions.style.display = '';
}
};
var pointerlockerror = function ( event ) {
instructions.style.display = '';
};
// Hook pointer lock state change events
document.addEventListener( 'pointerlockchange', pointerlockchange, false );
document.addEventListener( 'mozpointerlockchange', pointerlockchange, false );
document.addEventListener( 'webkitpointerlockchange', pointerlockchange, false );
document.addEventListener( 'pointerlockerror', pointerlockerror, false );
document.addEventListener( 'mozpointerlockerror', pointerlockerror, false );
document.addEventListener( 'webkitpointerlockerror', pointerlockerror, false );
instructions.addEventListener( 'click', function ( event ) {
instructions.style.display = 'none';
// Ask the browser to lock the pointer
element.requestPointerLock = element.requestPointerLock || element.mozRequestPointerLock || element.webkitRequestPointerLock;
if ( /Firefox/i.test( navigator.userAgent ) ) {
document.addEventListener( 'fullscreenchange', fullscreenchange, false );
document.addEventListener( 'mozfullscreenchange', fullscreenchange, false );
element.requestFullscreen = element.requestFullscreen || element.mozRequestFullscreen || element.mozRequestFullScreen || element.webkitRequestFullscreen;
element.requestFullscreen();
} else {
element.requestPointerLock();
}
}, false );
} else {
instructions.innerHTML = 'Your browser doesn\'t seem to support my epic Portfolio';
}
when i run a function i want the pointerlockcontrols to be disabled so i can use my mouse again. 当我运行一个函数时,我希望禁用pointerlockcontrols,以便再次使用鼠标。 so i tried the following:
所以我尝试了以下方法:
function onDocumentMouseDown( event ) {
element.exitPointerLock;
}
this doesnt give me any errors but i also dont get my mouse back why is this? 这不会给我任何错误,但我也不会把鼠标退回,这是为什么?
when i try: 当我尝试:
element.exitPointerLock();
i get element.exitPointerLock is not a function 我得到element.exitPointerLock不是函数
so i dont know how to fix this :( any suggestions would be great if you need more code or a jsfiddle just ask me :) 所以我不知道如何解决这个问题:(如果您需要更多代码或jsfiddle只是问我,任何建议都会很棒:)
so i figured it out :D i had to change: 所以我想出了:D我不得不改变:
element.exitPointerLock();
to: 至:
document.exitPointerLock();
then it all works fine! 那么一切正常! hope this helps someone :)
希望这可以帮助某人:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.