操作について 決定操作編
マウスならクリック、タッチパネル系ならタップですね。
アレ、mouseDownとかtouchesBeginで動作決定してしまう種類の全然わかってないプログラマって結構いますよねというお話。
ぶっちゃけここがプログラマが担保すべき操作の髄だろうに、と、思わなくもない。
例えばOS標準ブラウザとか一般的に広く使用されてるブラウザで、mouseDownした瞬間にリンククリックが判定されるようなのってあるかい? と。
まあJavaScrpitぶっ込んだページならクリック判定される場合もありますけどね。
そういうイケてないページはそれはそれ、ということで。
ブラウザゲームとかならクリック維持するのが重要な操作分岐だったりする場合もあるんでその限りでもないですが。
まあ、なんにしても普通のページで普通のブラウザなら基本的にリンクの上でmouseDownしてリンクの上でmouseUpしたらリンクに飛びますよね、という話。
要するに、操作に対する動作の紐付けが問題という感じです。
mouseDownってそのあとダブルクリックが飛んでくる場合もあればドラッグされる場合もあるんだからその時点でシングルクリック確定するの不可能でしょ、という話でもあるんですけどね。
私が作る場合とかなら、mouseUp後0.12秒から0.18秒程度のダブルクリック受付時間は作っておきますけどね。
さらに言うと0.05秒以下でのダブルクリックは握りつぶしたりもします。
それくらいなら操作感が重くなるということもありませんし、ついでに古いマウス使ってる場合にシングルクリックのつもりがダブル以上のクリックになってしまう場合とかを防いだりできますし。
ちなみに体感的には、受付時間が0.2秒を超え出したあたりから動作がもっさりして感じ始めるかなー、という感じです。
0.30秒とかになってくるとちょっと反応遅れてるというのが目に見え始める感じですね。
本来ならそれ用の検証アプリでもつくて、ダブルクリックを延々と続けて見てどれくらいの間隔があるのかを統計してみたりするのが望ましいんでしょうけどね。
そこまでするプログラマって少数派すぎるとは思いますけども。