Android / phonegap - 点击响应时间慢

时间:2012-02-16 10:16:29

标签: javascript android cordova timer

由于ghostCoder暗示了检测触摸事件而不是点击事件的想法,我接近制定解决方案。下面的代码是我目前所拥有的,但有些东西仍然不太正确。它适用于我的主页(非常基本的页面),但实际的游戏页面打破了:

这是我的代码: JAVASCRIPT:

var b=document.getElementById('STOP'),start=0;

//Check for touchstart
if('ontouchstart' in document.documentElement) 
{
    document.getElementById("notouchstart").style.display = "none";
}

//Add a listener that fires at the beginning of each interaction
[b].forEach(function(el){el.addEventListener('touchstart',interact);});

//Add the event handlers for each button
b.addEventListener('touchstart',highlight);

//Functions Store the time when the user initiated an action
function interact(e) 
{
    start = new Date();
}

//Highlight what the user selected and calculate how long it took the action to occur
function highlight(e) 
{
    e.preventDefault();
    e.currentTarget.className="active";
    if(start)
    {
        alert("test")
    }
    start = null;
}

BODY BUTTONS(首先显示开始按钮,然后点击显示停止按钮,然后重新开始等。)

    <INPUT TYPE="button" style="background:url(images/Start_Btn.png); background-color:transparent; width:150px; height:186px; border:none; cursor:pointer;" id="START" onClick="startBTN();">
    <INPUT TYPE="button" style="background:url(images/Stop_Btn.png); background-color:transparent; width:150px; height:186px; border:none; cursor:pointer;" id="STOP">

谢谢,

5 个答案:

答案 0 :(得分:9)

我已经使用了touchend。即使操作为touchstart,也会触发drag/scroll

答案 1 :(得分:4)

听取'touchstart'而不是'click':)。点击在触摸屏中有点延迟。 http://floatlearning.com/2011/03/developing-better-phonegap-apps/

答案 2 :(得分:0)

不要使用按钮。如果将事件添加到div,则更快。

答案 3 :(得分:0)

我正在研究计算器,我的第一个想法是从phonegap开始。现在我强烈建议不要在按键时间紧迫时不这样做。即使禁用所有额外的触摸处理程序并将touchstart直接设置为div:它太慢了。 (touchend不会那样做,当你从按钮上松开手指时会调用它)

答案 4 :(得分:0)

在Phonegap应用程序中,click事件有300ms的延迟时间。你为什么不使用Fastclick库这个pourpose ???我试过了,效果很好!

https://github.com/ftlabs/fastclick

希望很有帮助