2017-02-26 1 views
-1

マルチタッチドラッグで画面を2回タッチして表示/パンすると、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は、最初のタッチイベントが発生したときです。 1つのポインタが他のポインタの前に画面に触れると(フィンガが調整されていないため、ナノメートルまで)、間違ったイベントがトリガされます。

ので、変更:

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

へ:

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

それが移動し、一本の指がタッチダウンされたとき、それが描画されます。 2本の指が触れて動いたら、パン。

関連する問題