2011年8月4日木曜日

AIR for iOSで起動時にデバイスの向きを調べる

「ネコライフ時計 for iPad」 改め「ネコグラス時計」は、全てのデバイスの向きに対応しています。



デバイスの向きは、stage.deviceOrientationの値から得ることができます。
デバイスの回転を検出したらイベントを発生させて、そのイベントオブジェクトからデバイスの向きを調べることもできます。

ただしデバイスの回転イベントは、アプリ起動時には補足できないので、ネコグラス時計では、画面の初期化のために最初だけ stage.deviceOrientationの値を調べておりました。
しかし、困ったことにこの stage.deviceOrientationには、以下のような注意書きがついていました。
注意: deviceOrientation は常に取得できるとは限りません。アプリケーションの最初の起動時や、デバイスが水平に置かれている場合などは、デバイスの方向が「unknown」(不明)として報告されます。
アプリケーションの起動時に必ずunknownになるという不思議な仕様に、しばらく悩みました。
デバイスの向きが不明でも、画面(ステージ) は必ずどこかの方向へ向いている訳なので、要はその向きが分かればいいわけです。現在の画面(ステージ)の向きを調べるには、stage.orientationの値から得ることができます。

stage.deviceOrientation と stage.orientation。この2つのプロパティの意味の違いを混同すると、思わぬバグを混入させるハメになるので注意した方が良いでしょう。

参考 : Adobe Help 現在のステージの方向および縦横比の取得

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...