二本指ジェスチャ時に一本指での描画が同時に発生する問題
old title: マウスでの描画が同時に発生するので変な線ができる問題
解決
touchstartのハンドラでpreventDefaultしてもPaper.jsのToolの側のonMouseDownが呼ばれる
これがなぜかというとPaper.jsがそもそもtouch可能なデバイスについてはtouchStartを掴んでmouseDownに中継しているからだ: src
というわけで直すべきなのはToolに描画のために僕が渡したハンドラの側
onMouseDownでパスオブジェクトを作成していたが、それを遅延させる
onMouseDragで生のイベントオブジェクトを確認
それがtouchmoveでtouches.length > 1なら何もせずにreturnする
→直った!
---
マルチタッチの開始時にpreventDefaultしてるのにマウスイベントが発生しているのはなぜだ
https://developer.mozilla.org/ja/docs/Web/API/Document_Object_Model/Examples#Example_5.3A_Event_Propagation
https://qiita.com/hosomichi/items/49500fea5fdf43f59c58
そうか、タップのハンドラはwindowに付けたから、デフォルトではキャンバスについてる方が先に呼ばれるわけか。
キャプチャしてstopPropagationするのが正しいのかな
stopPropagationしても振る舞いは変わらず
useCaptureをつけると予想に反してドローだけ発生して2本指ジェスチャが動かなくなる
pRegroup-done-2019