2

有没有办法在 Firefox 和 Chrome 上使用 dart 锁定光标?我试过:

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

在 mousedown 事件监听器中

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

我也试过

renderer.canvas.requestPointerLock(); 

其中 renderer 是 three.dart 包中的 WebGLRenderer。问题是这只适用于 Chromium。我为 js 查找了以下跨浏览器解决方案,但这在 dart 中不起作用。

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

有没有办法在 dart 中进行指针锁定,或者我是否需要找到一种方法来从 dart 执行上面的 javascript?

4

1 回答 1

1

这个https://dartbug.com/4463有一个未解决的问题

我认为使用前缀的代码代码中的问题是 , canvas.requestPointerLock,canvas.mozRequestPointerLock如果它们不存在(或者如果存在)canvas.webkitRequestPointerLock则不返回。您必须通过其他方式获取当前浏览器,然后调用前缀方法。falsetrue

于 2014-09-26T10:31:12.210 回答