Android端末による傾きや振動のセンサー。
当然スマートフォンの操作の一つなので、アプリにも使える。
では、AIR for Androidでは使うことが出来るのか。

結論から言えば、出来る。まあ、当然なんだけどね。
初めは、いい検索ワードが思いつかなくてGoogle先生に聞いても的確な答えが返ってこなくて結構苦労したけど、「加速度センサー」をキーワードに入れることで、見事にGoogle先生がスマッシュヒット。

参考にしたのはこちらのサイト
→ http://cuaoar.jp/2010/07/

Accelerometerクラス
これが加速度センサーを制御するクラス。

使い方は、

var accl:Accelerometer;
if(Accelerometer.isSupported){
  accl = new Accelerometer();
  accl.addEventListener(AccelerometerEvent.UPDATE, acclUpdate);
}else{
  messTxt.text = "noSupported";
}

function acclUpdate(ae:AccelerometerEvent):void{
  messTxt.text = "Supported"
  + "\n" + "acceleration X: " + "\n" + ae.accelerationX.toString()
  + "\n" + "acceleration Y: " + "\n" + ae.accelerationY.toString()
  + "\n" + "acceleration Z: " + "\n" + ae.accelerationZ.toString();*/
}

加速度センサーは、完全にデバイス依存なので、このセンサーがサポートされているかのチェックが必要。
それは、isSupported でチェック。
そして、サポートされていれば、AccelerometerEvent.UPDATE イベントリスナーを発行する。
AccelerometerEvent.UPDATEはセンサーの更新情報があるごとに動くので、これで傾きをキャッチできる。

ちなみに、傾きはX軸が accelerationX Y軸が accelerationY Z軸が accelerationZ で取得でき、
それぞれ-1~1の数値となる。

傾きの向きによる数値の変化は……言葉で説明するのは難しいので、実際に実機で試してみて数値変化を見るのが一番!(ぉ

これで、この数値を使って座標の取得してやれば、デバイスの傾きによって動くMCが完成。

実際に10行に満たないスクリプトで加速度センサーを使うことが出来るって言うのは本当に驚いた。
こんなに簡単にAndroidデバイスで動くものが作れていいのかな?と思うくらい。

ある程度理解できたところで、とりあえずこんなものを作ってみた。

AndroidアプリをFlashで作る!

AndroidアプリをFlashで作る!

キャラクターの絵の上を加速度センサーによる傾きで動くスコープが移動し、スコープが重なった部分の服が透けて見えるという、まあ、よくあるネタなんだけど。

あとは、enemyをマスクで隠しておき、ターゲットスコープを動かして見つけ出した後ロックオン、enemyをタップすることで撃破! というものも試してみた。

ともあれ、加速度センサーが使えるようになって、Androidデバイスらしいアプリを作る第一歩をやっと踏み出せた気がする。
これからは、さらにアイディアをねって「Androidらしいもの」ができるようにしよう!



もし興味がありましたら、フォロー、チェックをお願いします。
Twitter → http://twitter.com/makotok1
Pixiv → http://www.pixiv.net/member.php?id=500620