多点触控处理程序在javascript中触发单触处理程序

问题描述:

我想在两次触摸屏幕并平移多点触控拖动时的视图/屏幕时在js画布上绘制一条线。但每次拖动时,都会绘制一条我不想要的线条。这里是我的测试代码。多点触控处理程序在javascript中触发单触处理程序

 eventjs.add(viewer.drawer.element, "drag", function(event, self) { 
     console.log("touchstart" + self.fingers); 
     console.log(event); 



      //console.log('event'); 
      //console.log(event); 
      //console.log('self ' + self.fingers + ' status ' + self.state); 
      //console.log(self); 


      if(self.state == 'move' && self.fingers == 2) { 
       console.log('panning'); 
      }else if(self.state == 'up' && self.fingers == 2){ 
       console.log('pan end'); 
      } 
      else if(self.fingers == 1 && event.type=="touchstart"){ 
       console.log('draw line'); 
      } 

     }); 

我使用Event.js进行触摸事件。任何帮助将不胜感激。

+0

这是一个提供的网站吗?你使用HTML/CSS/JS来开发android应用程序吗? – Zoe

+0

没有。我使用简单的JavaScript。 –

+0

JS在哪里被使用?它是开发你的应用程序吗?还是你想在网站上处理多点触控?还是通过WebView? – Zoe

根据自己:

但每次我拖的时间,绘制一条线,我不想要的。

绘制您使用touchstart。
touchstart是第一次触摸事件发生的时间。这意味着如果一个指针在另一个指针之前触摸屏幕(发生很多事情是因为手指不协调,直到纳米),它会触发错误的事件。

所以,变化:

 else if(self.fingers == 1 && event.type=="touchstart"){ 
      console.log('draw line'); 
     } 

到:

 else if(self.fingers == 1 && event.type=="move"){ 
      console.log('draw line'); 
     } 

它的动作,一个手指触地时,将借鉴。如果触摸两根手指并移动,则平移。