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本指ジェスチャが動かなくなる