2012-10-03 76 views
4

過去幾天我一直在研究我的第一個HMLT5遊戲原型,並且我需要使它在桌面和移動設備上都能正常工作。問題是,我是一般網頁開發的新手。在畫布內部獲取相對觸摸座標

要獲得相對於畫布的鼠標/觸摸位置,我使用了e.layerXe.offsetX並開始使用this method。我甚至加了<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">

但即使在此之後,觸摸座標在旋轉屏幕時會抵消,Dolphin也會以非常奇怪的方式處理觸摸。

有沒有什麼通用的方法可以解決這個問題?我不熟悉這些技術,所以可能使用jQuery或類似的東西?

編輯:此外,pageXscreenXclientX都返回相同的值。不知道爲什麼,我用e.touches[0].clientX

編輯2:我想我解決了它。如果屏幕旋轉,忘記我必須再次撥打findPos(obj);。我甚至不想在沒有meta標籤的情況下進行測試,現在我會像這樣離開它。

回答

3

我用這個(通過JQuery)來獲得在畫布我鼠標的位置,相對於畫布:

canvas.mousemove(function(e){ 
    mmouseX = e.pageX-canvas.position().left; 
    mmouseY = e.pageY-canvas.position().top; 
} 

試了一下在Android默認瀏覽器,它工作正常,以及在桌面上。雖然從來沒有嘗試過海豚。