2014-09-26 98 views
2

有没有办法用dart锁定光标,在Firefox和Chrome上工作? 我尝试:与飞镖PointerLock

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

在鼠标按下事件侦听器

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

我还试图

renderer.canvas.requestPointerLock(); 

其中渲染器是从three.dart封装的WebGLRenderer。 问题是这只适用于Chromium。 我抬头看下面的js的crossbrowser解决方案,但这不适用于dart。

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

有没有办法做飞镖的指针锁定,还是我需要找到一种方式来执行飞镖上面的JavaScript?

回答

1

有这个https://dartbug.com/4463

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

+1

谢谢!另外我有一个问题,因为飞镖不识别mozRequestPointerLock和webkitRequestPointerLock属性。所以我添加了一个JavaScript来锁定指针。 – pasiS 2014-09-26 12:18:00