Javascript &引用;解析";Firefox中的触摸事件

Javascript &引用;解析";Firefox中的触摸事件,javascript,firefox,multi-touch,Javascript,Firefox,Multi Touch,我有一个在Firefox上运行Windows7触摸屏所需的演示。据介绍,Mozilla已经实现了标准化的TouchAPI。但是,这在Windows7平板电脑上不起作用。FF 14中未触发这些事件 我们必须使用MozTouchMove事件。但它所做的只是发送顺序事件。WI.e。手指一、手指二、手指三等 甚至很难区分两个手指和一个手指。我必须测量更新之间的距离,为每个“区域”分配我自己的“ID”。之后,为了检测两个手指的拖动,我们必须确保整个解析过程保持不变——如果一个手指向上移动,可能会“松开”,

我有一个在Firefox上运行Windows7触摸屏所需的演示。据介绍,Mozilla已经实现了标准化的TouchAPI。但是,这在Windows7平板电脑上不起作用。FF 14中未触发这些事件

我们必须使用
MozTouchMove
事件。但它所做的只是发送顺序事件。WI.e。手指一、手指二、手指三等

甚至很难区分两个手指和一个手指。我必须测量更新之间的距离,为每个“区域”分配我自己的“ID”。之后,为了检测两个手指的拖动,我们必须确保整个解析过程保持不变——如果一个手指向上移动,可能会“松开”,因为“第二个”位置被“第一个”位置覆盖。试图想出一个办法。有什么想法吗?

//用于在x或y方向上双指滚动的多点触控事件处理程序
// multitouch event handler for two finger scrolling in x or y
function onTouchMove(event) {

    var eventTouch = new point(event.clientX, event.clientY);

    if (previousTouch.x == 0 && previousTouch.y == 0) {
        previousTouch = new point(eventTouch.x, eventTouch.y);                
        return;
    }


    //filter really close touches
    //in this case, assume single touch and defer to system mouse
    if (previousTouch !== undefined) {
        if (eventTouch.distance(previousTouch) < 6) {
            return;
        }
    }

    fingerIndex ++;

    // only track every other touch to keep fingers consistent
    if( fingerIndex % 2 == 0)
    {
        document.getElementById("finger1").style.left = previousTouch.x + "px";
        document.getElementById("finger1").style.top = previousTouch.y + "px";

        document.getElementById("finger2").style.left = eventTouch.x + "px";
        document.getElementById("finger2").style.top = eventTouch.y + "px";
    }

    previousTouch = eventTouch;
}
函数onTouchMove(事件){ var eventTouch=新点(event.clientX,event.clientY); if(previousTouch.x==0&&previousTouch.y==0){ previousTouch=新点(eventTouch.x,eventTouch.y); 返回; } //过滤非常近的接触 //在这种情况下,假设使用单点触摸并遵从系统鼠标 如果(previousTouch!==未定义){ if(eventTouch.distance(previousTouch)<6){ 返回; } } fingerIndex++; //仅跟踪每一次触摸,以保持手指的一致性 如果(索引%2==0) { document.getElementById(“finger1”).style.left=previousTouch.x+“px”; document.getElementById(“finger1”).style.top=previousTouch.y+“px”; document.getElementById(“finger2”).style.left=eventTouch.x+“px”; document.getElementById(“finger2”).style.top=eventTouch.y+“px”; } previousTouch=eventTouch; }
您链接到的状态文档日期为2010年7月-两年前,Mozilla已经关闭。因此,您现在正在使用单触式API并尝试实现多触式——这肯定会变得很糟糕。该文档实际上为您指出了自Firefox 12以来的最新版本。这使您能够正确区分触摸,文档实际上详细解释了如何操作。

我只是再次尝试再次检查。“标准”API火灾中没有任何事件。不推荐使用的版本是唯一有效的。我已经禁用了firebug等扩展,以防它们捕获事件。不走运。