我有一个需要在Windows 7触控平板电脑上运行Firefox的演示版。根据{{3}},Mozilla已经实施了标准化的触摸API。但是,这不适用于Windows 7平板电脑。 FF 14中没有触发这些事件。
我们必须使用MozTouchMove
事件。但它所做的只是调度顺序事件。 WI.e.手指然后手指两个然后手指三个等。
甚至很难将两个手指与一个手指区分开来。我必须测量更新之间的距离,为每个“区域”分配我自己的“ID”。在那之后,为了检测双指拖动,我们必须确保整个解析保持不变 - 如果一个手指上升可能会“解开”,因为“第二”位置被“第一”位置覆盖。试图想出办法。有什么想法吗?
答案 0 :(得分: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;
}
答案 1 :(得分:0)
您链接到的状态文档日期为2010年7月 - 两年前Mozilla 关闭。因此,您现在正在使用deprecated单点触控API并尝试实现多点触控 - 这必然会变得丑陋。文档实际上指向了自Firefox 12以来可用的新multi-touch API。这使您可以正确区分触摸,文档实际上会详细解释如何执行此操作。