我有一个非常简单的用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);
}
}
很明显,直到这一点,问题是我无法克服我的那种奇怪的行为:
如果我点击一个对象被创建;如果我握住那个手指并在屏幕上拖动,对象就不会移动(是的,我正确地重新绘制),但整个页面将会像我滚动它一样。因此,当我发布时,该对象不会被删除(这只有在我移动手指时才会被删除)。
经过几次接触,没有任何作品了。