无法在Cordova上使用多点触控事件

时间:2016-08-18 16:41:37

标签: javascript cordova javascript-events multi-touch

我有一个非常简单的用Cordova制作的应用程序:它只有一个页面,这与我绘制的东西上的单个大画布没什么区别。

我的问题是:我需要与页面进行交互,例如:对于我放在屏幕上的每个手指,我需要绘制一个对象,跟随生成它的手指然后,当手指被释放时,对象被删除。这是我的逻辑:

canvas.addEventListener("pointerdown", clickhandler, false);
canvas.addEventListener("MSPointerDown", clickhandler, false);
canvas.addEventListener("touchstart", clickhandler, false);

canvas.addEventListener("pointermove", clickhandler, false);
canvas.addEventListener("MSPointerMove", clickhandler, false);
canvas.addEventListener("touchmove", clickhandler, false);

canvas.addEventListener("pointerup", clickhandler, false);
canvas.addEventListener("MSPointerUp", clickhandler, false);
canvas.addEventListener("touchend", clickhandler, false);

clickhandler是:

function clickhandler(e) {
    if (e.preventManipulation) e.preventManupulation();
    if (e.preventDefault) e.preventDefault();

    if (e.type.match(/(down|start)$/i)) {
        points[e.pointerId] = new AnimatedCircle(e.pageX, e.pageY, 40, 1000);
    } else if (e.type.match(/(move)$/i)) {
        points[e.pointerId].x = e.pageX;
        points[e.pointerId].y = e.pageY;
    } else if (e.type.match(/(up|end)$/i)) {
        points.splice(e.pointerId, 1);
    }
}
很明显,直到这一点,问题是我无法克服我的那种奇怪的行为:

如果我点击一个对象被创建;如果我握住那个手指并在屏幕上拖动,对象就不会移动(是的,我正确地重新绘制),但整个页面将会像我滚动它一样。因此,当我发布时,该对象不会被删除(这只有在我移动手指时才会被删除)。

经过几次接触,没有任何作品了。

0 个答案:

没有答案