PointerLock с дротиком

Есть ли способ заблокировать курсор с помощью dart, который работает на Firefox и Chrome? Я старался:

void lock(event)
{    
    var canvas = document.querySelector('canvas');
    canvas.requestPointerLock();
}

в слушателе событий mousedown

 document.addEventListener('mousedown', lock, false);

Я тоже пробовал

renderer.canvas.requestPointerLock(); 

где renderer - это WebGLRenderer из пакета three.dart. Проблема в том, что это работает только в Chromium. Я посмотрел следующее кросс-браузерное решение для js, но в дротике это не работает.

canvas.requestPointerLock = canvas.requestPointerLock ||
                 canvas.mozRequestPointerLock ||
                 canvas.webkitRequestPointerLock;

Есть ли способ сделать указатель блокировки в дартс, или мне нужно найти способ выполнить вышеупомянутый JavaScript из дартс?

1 ответ

Решение

Существует открытый вопрос для этого https://dartbug.com/4463

Я думаю, что проблема в вашем коде кода с помощью префиксов заключается в том, что canvas.requestPointerLock, canvas.mozRequestPointerLock, canvas.webkitRequestPointerLock не возвращайся false если они не существуют (или true если это так). Вы должны получить текущий браузер другими способами, а затем вызвать префиксный метод.

Другие вопросы по тегам