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