我正在使用Transformer Pad并开发绘图板。 我使用PhoneGap(javascript)编写代码而不是JAVA。
但触摸移动事件非常奇怪。
我想当我将手指放在垫子上时,它会不断收集我的坐标 触摸画布。但它没有! 这很荒谬,它只收集“1”坐标:我的手指移动到画布上的第一个点。
以下是关于“触摸&&移动事件”的代码:
function touchStart(event){
if (event.targetTouches.length == 1) {
var touch = event.targetTouches[0];
if (event.type == "touchstart") {
line_start_x= touch.pageX- canvas_org_x;
line_start_y= touch.pageY- canvas_org_y;
context.beginPath();
context.moveTo(line_start_x, line_start_y);
}//if
}//if 1
}//function.
function Touch_Move(event){
line_end_x= event.touches[0].pageX- canvas_org_x;
line_end_y= event.touches[0].pageY- canvas_org_y;
context.lineTo(line_end_x, line_end_y);
context.stroke();
test++;
}
我不知道为什么每次我将手指放在垫子上,试图绘制线条,曲线或任何东西 我想要。当手指移动时,仅出现非常短的片段。所以我在这个js文件的开头声明了一个变量:“var test = 0”。我发现虽然我在没有离开或停止的情况下将手指放在垫上,但“测试”的值仍为1.这意味着我将手指放在它上面。但事实并非如此 不断触发事件:“Touch_Move”。
我现在能做什么?我需要一个相应的事件来触摸板上的“mousemove”。至少,必须不断触发事件。
Thank you!
答案 0 :(得分:38)
哦,耶稣。我终于找到了答案: Please take reference for this site.
如果您使用Android系统,请记住“touchmove”只会触发ONCE作为您的手指 在垫子周围移动。所以,如果你想画一条线或什么东西,你必须这样做:
function onStart ( touchEvent ) {
if( navigator.userAgent.match(/Android/i) ) { // if you already work on Android system, you can skip this step
touchEvent.preventDefault(); //THIS IS THE KEY. You can read the difficult doc released by W3C to learn more.
}
如果您有更多时间,可以阅读W3C关于介绍该文件的文件 'movetouch',真的很难理解。医生糟透了。