0

我有一个演示,需要在 Windows 7 触摸平板电脑上的 Firefox 中运行。据此 Mozilla 实现了标准化的触摸 API。但是,这不适用于 Windows 7 平板电脑。这些事件都不会在 FF 14 中触发。

我们必须使用MozTouchMove事件。但它所做的只是调度顺序事件。威。一指,二指,三指,以此类推。

甚至很难区分两个手指和一个手指。我必须测量更新之间的距离,将我自己的“ID”分配给每个“区域”。之后,要检测双指拖动,我们必须确保解析始终保持不变——如果一个手指向上,则可能会“取消拖动”,因为“第二”位置会被“第一”位置覆盖. 试图想出一个方法。有任何想法吗?

4

2 回答 2

0
// 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;
}
于 2012-08-16T00:26:07.640 回答
0

您链接到的状态文档日期为2010 年 7 月 -两年前 Mozilla 关闭。因此,您现在正在使用已弃用的单点触控 API 并尝试实现多点触控——这势必会变得丑陋。该文档实际上为您指出了自 Firefox 12 以来可用的新多点触控 API。这使您可以正确区分触控,并且该文档实际上详细解释了您将如何做到这一点。

于 2012-08-16T07:17:16.207 回答