L'événement "touchmove" sur le système android: Transformer Prime

Je travaille sur un Transformer Pad et développe une assiette de dessin. J'utilise PhoneGap (javascript) pour écrire le code au lieu de JAVA.

Mais l'événement touchmove est assez étrange.

Je pense que lorsque je déplace mon doigt sur le pad, il va constamment collecter les coordonnées que je touche sur le canevas. MAIS IL N'EST PAS! C'est ridicule, il ne collecte que la coordonnée «1»: le premier point sur la toile sur laquelle mon doigt se déplace.

Voici mon code sur l'événement "Touch && Move":

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++; } 

Je ne sais pas pourquoi chaque fois que je déplace mon doigt sur le pad, j'essaie de tracer une ligne, une courbe ou tout ce que je veux. À mesure que le doigt se déplace, seul un segment TRÈS COURT apparaît. Je déclare donc une variable: "var test = 0" au début de ce fichier js. J'ai constaté que bien que je déplace mon doigt sur le coussinet sans le quitter ou m'arrête, la valeur de "test" reste 1. Cela signifie que je déplace mon doigt dessus. Mais il ne déclenche pas continuellement l'événement: "Touch_Move".

Que puis-je faire maintenant? J'ai besoin d'un événement correspondant à "mousemove" sur le pavé tactile. Au moins, l'événement doit être activé en permanence.

  Thank you! 

Oh, Jésus. Je trouve enfin les réponses: merci de vous référer à ce site.

Si vous travaillez sur un système Android, n'oubliez pas que le 'touchmove' ne coupe qu'une fois que votre doigt se déplace autour du pad. Donc, si vous voulez dessiner une ligne ou quelque chose, vous devez le faire:

 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. } 

Et si vous avez plus de temps, vous pouvez lire le document du W3C sur l'introduction du «movetouch», il est vraiment difficile à comprendre. Le doc est une merde.