2014-09-26 99 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