2012-06-26 3 views
14

나는 Transformer Pad를 작업하고 드로잉 플레이트를 개발 중입니다. PhoneGap (javascript)을 사용하여 JAVA 대신 코드를 작성합니다.안드로이드 시스템의 "touchmove"이벤트 : Transformer Prime

하지만 touchmove 이벤트는 아주 이상합니다.

나는 패드 위에서 손가락을 움직이면 계속해서 캔버스에있는 터치 좌표를 수집 할 것입니다. 하지만 그렇지는 않습니다! 그것은 "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++;     
} 

내가 선, 곡선을 그릴려고 모르거나 anything 나는 원한다. 손가락이 움직이면 아주 짧은 세그먼트 만 나타납니다. 그래서 변수를 선언합니다 : "var test = 0"이 js 파일의 시작 부분에. 나는 손가락을 움직이지 않거나 멈추지 않고 패드 위에서 움직이지만 "테스트"의 가치는 1로 유지된다는 것을 알았습니다. 그것은 손가락으로 움직이는 것을 의미합니다. 하지만 계속해서 이벤트를 트리거하는 것은 입니다 : "Touch_Move".

지금 어떻게해야합니까? 터치 패드에서 "mousemove"에 해당하는 이벤트가 필요합니다. 적어도 이벤트는 지속적으로 트리거되어야합니다.

                Thank you! 

답변

38

오, 예수. 드디어 답을 찾을 : 당신은 안드로이드 시스템에서 작업하는 경우 Please take reference for this site.

, 손가락으로 ONCE 패드 주위 이동을 '하는 TouchMove'만 불을 기억한다. 그래서 당신은 선 또는 무언가를 그릴 싶어, 당신은이 작업을 수행해야한다 :

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

을 그리고 시간이 남는다면, 당신은 그것을 이해하기 위해 정말 열심히이다 'movetouch을'도입에 대한 W3C의 문서를 읽을 수 있습니다 . 의사가 엿 먹어.

+4

그래서 전체 슬라이드 쇼에서 왼쪽/오른쪽으로 스크롤 할 때 다음 슬라이드로 이동하려는 일부 기능이 있습니다. 'preventDefault()'를 사용하면 정상적으로 작동하지만 (위아래로 움직이지 않는) 일부 슬라이드는 화면보다 크다. 슬라이드 쇼는 실제로 무엇을위한 최상의 기술자는 아니지만, 생각). – CWSpear

+1

이 작업을 수행하기 위해'touchmove' 이벤트 자체에'prevenDefault'를 추가해야했습니다. – ngryman

+1

스크롤링을 계속 사용 가능하게 할 수 있습니까? 스크롤과 연속 터치 이동이 동시에 필요합니다. –

관련 문제