2013年3月23日 星期六

IOS上的觸摸事件

IOS上沒有滑鼠事件(Mouse Event),只有觸摸事件(Touch Event),因此若要將Windows Phone或Android的PhoneGap專案移植到IOS,須稍做修改,簡易步驟如下:

1. 先找到程式碼中的滑鼠事件定義,譬如說:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// 滑鼠左鍵按下的事件 for Windows Phone, Android, ...
document.onmousedown = function( event )
{
    try
    {
        var x = event.pageX + document.documentElement.scrollLeft;
        var y = event.pageY + document.documentElement.scrollTop;
        mousedown( x, y ); // 在(x,y)位置點擊後的事件處理
        
    }
    catch ( err )
    {
        errorMessage.innerHTML += "發生錯誤: " + err.stack + "<br>";
    }
}



2. 在此滑鼠事件定義的旁邊添加相對應的觸摸事件:
touchstart對應mousedown、touchmove對應mousemove、touchend對應mouseup

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
// 對應滑鼠按下的觸摸事件 for IOS
document.ontouchstart = function( event )
{
    try
    {
        var touch = event.touches[0];
        var x = touch.clientX + document.body.scrollLeft;
        var y = touch.clientY + document.body.scrollTop;
        mousedown( x, y ); // 在(x,y)位置點擊後的事件處理
        
    }
    catch ( err )
    {
        errorMessage.innerHTML += "發生錯誤: " + err.stack + "<br>";
    }
}


3. 測試是否可行,打完收工。

沒有留言:

張貼留言