先日iPhoneのタッチイベントで悩まされました。
まずタッチイベントについて様々なサイトにて解説がございます。
各指の情報はevent.touchesに配列で格納されると。
なるほど。
そして5本まで取得可能。
なるほど。
event.touches[0]〜event.touches[4]まで
各指の情報が格納される。
なるほど。わかりやすい。と思ったのですが、、、
思い込みにやられました。
そもそも、タッチした順番にその指の情報が配列にプッシュされると
思い込んでいて、期待通りの結果が得られませんでした。
これタッチした順番どおりに配列にプッシュされる訳ではなく、
タッチするたびにランダムに各指の情報が配列に格納されているようです。(違うかな??)
例
まず人差し指でタッチ
event.touches[0]に人差し指の情報が格納。
次に人差し指を離さず中指をタッチ
event.touches[0]に人差し指の情報
event.touches[1]に中指の情報
次に人差し指、中指を離さず薬指をタッチ
event.touches[0]に人差し指の情報
event.touches[1]に中指の情報
event.touches[2]に薬指の情報
となると思っていたのですが、
event.touches[0]に薬指情報
event.touches[1]に人差し指の情報
event.touches[2]に中指の情報
となるなど、タッチする度様々な結果となりました。
なので、タッチスタートした指をタッチエンドでまで追うとなると
event.touches[i].identifierというタッチごとのIDを取得する
プロパティを、タッチしたときに取得。
event.changedTouches[i].identifierで、
タッチエンド時にどのIDの指か判定して実行する。
てな感じのforとifがネストしたすっきりしないコードになってしまいました。
根本的に何か間違っているのでしょうか?またはもっと簡単な方法があるのかしら。