Выход указатель блокировки управления Three.js не работает
У меня есть следующий код для блокировки курсора (это прекрасно работает):
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';
}
когда я запускаю функцию, я хочу, чтобы управление указателем было отключено, чтобы я мог снова использовать свою мышь. поэтому я попробовал следующее:
function onDocumentMouseDown( event ) {
element.exitPointerLock;
}
это не дает мне никаких ошибок, но я также не могу вернуть свою мышь, почему это?
когда я пытаюсь:
element.exitPointerLock();
я получаю element.exitPointerLock не является функцией
поэтому я не знаю, как это исправить:(любые предложения будут хороши, если вам нужно больше кода или jsfiddle просто спросите меня:)
1 ответ
Решение
Так что я понял это:D я должен был изменить:
element.exitPointerLock();
чтобы:
document.exitPointerLock();
тогда все работает нормально! надеюсь, это поможет кому-то:)