【ハウツー】
iPhoneのSafariにはタッチされた時のイベントを取得することができます。このタッチ関係のイベントを使ってピンチイン/アウトや回転操作を行うためのプログラムを書くこともできます。が、実際にそのようなコードをJavaScriptで書くのは手間です。幸いiPhoneのSafariには、そのような処理(ジェスチャー)を検知するための仕組みとイベントプロパティが用意されています。今回は、回転させるジェスチャーを使って、ちょっとした回転ゲームを作成してみます。
今回はシンプルなゲームで指定した回転角度まで画像を回転させるだけのものです。指定した回転角度まで回転させるタイムを競います。普通の画像を回転させても良いのですが、ここではGoogleマップを回転させてみます。
![]() |
正確に地図を回転させるゲーム |
Safariのジェスチャーに関するイベントは以下のものがあります。
| gesturestart | ジェスチャー開始 |
|---|---|
| gesturechange | ジェスチャー中 |
| gestureend | ジェスチャー終了 |
今回の場合、回転させるジェスチャーを取得しますが、使用するのはgesturechangeとgestureendイベントです。gesturechangeにより現在の回転角度を表示します(遅延描画が行われるためかリアルタイムに角度が表示されないことがあります)。
画像をいったん回転させた後、指を離してしまうとジェスチャーが終わってしまいます。そこでgestureendにより画像の回転角度を変数に保存しておきます。
あと、もう1つイベント処理を追加しておきます。これまではSafariの画面をドラッグまたはフリック(画面を指で払う)すると、Webページの画面がスクロールしてしまいました。このフリックによるスクロールを禁止するにはtouchmoveイベントを検知してデフォルトのイベントを処理しないようにします。「event.preventDefault()」とするとデフォルトのイベントが実行されなくなります。
window.addEventListener("load", function(){
document.addEventListener("gesturechange", checkRotate, false);
document.addEventListener("gestureend", saveRotate, false);
document.addEventListener("touchmove", function(){ event.preventDefault(); }, false);
});
| レノボ・ジャパン、ウェブ広告モデルを一般公募 - 新生活キャンペーンの一環で [21:21 2/10] |
| 【レポート】スマートフォンを狙ったワンクリック詐欺やオンラインバンキングを狙うゼットボット - トレンドマイクロマンスリーレポート [20:43 2/10] |
| 【レポート】レノボ、大和研究所の開発陣らによる「ThinkPad X1 Hybrid」の技術解説 [20:41 2/10] |
| デル、「冬モデルファイナルセール」最終週 - 各種アップグレードが無料 [20:13 2/10] |
| Appleが3月初旬にスペシャルイベント開催の噂 - iPad 3の発表か [18:34 2/10] |
|
【レポート】「appliko」がオススメAndroidアプリを紹介!! - 1月31日~2月8日のAndroidアプリランキング [01:30 2/11] 携帯 |
|
【レポート】人気の無料/有料アプリを毎週紹介 - 1月31日~2月8日のAndroidアプリランキング [01:00 2/11] 携帯 |
|
渡部篤郎主演でドラマ化!地元新聞社が伝え続けた東日本大震災の物語 [00:08 2/11] キャリア |
|
沖縄発ヒーロー革命!「琉神マブヤー」が海を越えハワイを目指す! [00:08 2/11] キャリア |
|
中国四川省、パンダの保護と生態研究の最新情報とは? [00:08 2/11] キャリア |