Linuxなどのメモ書き

Windows8 Gesture動作


Rev.1を表示中。最新版はこちら

Vivo Tabを買った

Windows8タブレットでの動作確認用にASUSのVivo Tab RTを買った。タブレットとして使う分にはWindows8のメトロUIはなかなか使いやすい。

Gesture関連のイベント

早速、JavaScriptからタッチ等ジェスチャ関連のイベントをどのように扱えるか試してみた。

まず、iOS,Androidのタッチ関連のイベントとはまったく異なる。Windows8ではタッチ関連のイベントにはマウスイベント、ポインタイベント、ジェスチャーイベントの3種類がある。

(a) マウスイベント

従来のマウス操作で使っていたmousedown,mouseup,click等のイベント。これらは、タッチパネル操作でも従来どおりイベント発生するので、PC用のサイトなどでは特に修正をしなくてもタッチパネルから操作できる(このあたりはiOS,Androidも同じ)。ただし、マルチタッチなどに対応するには以下ポインタイベント、ジェスチャーイベントを使う必要がある。

(b) ポインタイベント

タッチパネル上での指の動き(Up/Down/Move)を検出するイベント。MSPointerDown,MSPointerMove,MSPointerUp,MSPointerCancelのようにイベント名はMSPointerで始まる。

iOS,Androidなどでは、touchmoveイベントのevent.touches[]で全ての指の状況を把握できたが、Windows8のポインタイベントでは、指1本毎にポインタIDというものが割り振られて、それぞれのポインタ(指)毎にイベントが発生するため、イベントハンドラではイベントに関連するポインタ(指)の情報しか参照できない。このため、全ての指の状況を把握するには、自分で管理してやる必要がある。

(c) ジェスチャーイベント

タップやホールド等の操作を検出するのに使われるイベント。ポインタイベントでは、単純にUp/Down/Moveしか取得できないので、ホールド等を検出しようとすると、指を降ろしていた時間を監視したりと面倒になるのだが、ジェスチャイベントを使えば簡単にホールド等のジェスチャを検出できる。

なお、iOS,Androidではジェスチャイベントとは複数の指での操作を意味していたが、Windows8では1本指での操作(タップ)等もジェスチャ動作として扱われるので、若干意味が異なる。


編集中



最終更新 2012/11/27 17:06:27 - kztomita
(2012/11/27 17:06:27 作成)


リンク

その他のWiki
Linuxメモ
Xnuメモ

会社
(有)ビットハイブ
受託開発やってます。

よくやる仕事

・Webシステム開発(LAMP環境)
・Linuxサーバー設定関連
サーバー移転作業代行

開発事例にデジタルカタログ/マンガビューワーを追加しました。

draggable.jsのスマホ対応版デモページを追加しました。説明はこちら

検索

Adsense
最近のコメント