2017-02-26 167 views
-1

我想在兩次觸摸屏幕並平移多點觸控拖動時的視圖/屏幕時在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

回答

0

根據自己:

但每次我拖的時間,繪製一條線,我不想要的。

繪製您使用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'); 
     } 

它的動作,一個手指觸地時,將借鑑。如果觸摸兩根手指並移動,則平移。