Ad

Adobe AirでAndroidの全画面表示の問題 anchor.png Edit

Adobe AirでAndroidアプリを製作するとき、Animate CCの「AIR for Android設定」でフルスクリーンモードにしたとき、stage.fullScreenWidth編集やstage.fullScreenHeight編集で取得し、それを元にレイアウトすると表示がずれることがあります。

これはAirで取得できるフルスクリーンのサイズは画面上下(横表示なら上と横)に表示されるAndroidのステータスバーやナビゲーションUIを含んだ画面のサイズだからです。

このあたりをうまく処理しようとすると、Androidのネイティブな処理が必要となるようなのですが、幸いフルスクリーンモードをうまく扱えるようにしてくれるANEが無料で公開されています。

Full Screen ANE for Adobe AIR

このANEの機能でゲームでよく使いそうなものを解説します。

Page Top

Full Screen ANE for Adobe AIR anchor.png Edit

Page Top

初期化 anchor.png Edit

まず、app.xmlで

<fullScreen>false</fullScreen>

を定義するか、Animate CCなら「AIR for Android設定」で「フルスクリーンモードにする」のチェックを外します。

次に、

stage.displayState = StageDisplayState.NORMAL;

とします。 そして、ANEにステージを設定します。

AndroidFullScreen.stage = stage;
Page Top

よく使うモード anchor.png Edit

Page Top

デバイスで最適のフルスクリーンを実行 anchor.png Edit

fullScreen()でそのデバイスで一番無難なフルスクリーンモードを実行します。

AndroidFullScreen.fullScreen();

私の手持ちのデバイスでは、ステータスバーやナビゲーションを表示した状態となりました。 ただし、stage.fullScreenWidth編集やstage.fullScreenHeight編集は正しい値が入るようになるので、実行しないよりは使い勝手は良いです。

Page Top

ステータスバーを消す anchor.png Edit

上に出るステータスバーを消すには

AndroidFullScreen.setSystemUiVisibility(AndroidFullScreen.SYSTEM_UI_FLAG_FULLSCREEN );

とします。ゲームでは一番使いやすいモードです。 ただし、アプリをバックグラウンドに回して再びフォアグラウンドにすると、ステータスバーが出てしまうようです。そのため、フォアグラウンドに回ったときに再び実行する必要があります。

NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, onActivateHandler);
private function onActivateHandler(e:Event):void {
	AndroidFullScreen.setSystemUiVisibility(AndroidFullScreen.SYSTEM_UI_FLAG_FULLSCREEN );
}
Page Top

ステータスバーおよびナビゲーションも消す anchor.png Edit

ステータスバーも下や横に出るナビゲーションも消すには以下のメソッドを使います。

AndroidFullScreen.leanMode();

ただし、ナビゲーションが消えるといっても黒いバーは残ります。また、そのバーをタップするとステータスバーやナビゲーションが復帰し、画面の表示領域も変わります。

よってその場合のレイアウトなども用意する必要があります。

Page Top

まとめ anchor.png Edit

個人的にはゲームで使うにはステータスバーだけ消すのが一番便利と思います。また、setSystemUiVisibility編集を使えばAndroidで使える画面モードを自由に動的に設定できます。

全体についての注意点として、

  • ナビゲーションを消した場合、それを復活させるとレイアウトが変わること
  • アプリをバックグラウンドにして復帰すると画面モードが変わることもある

があります。 そのため、テストは十分に行う必要があります。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 2815, today: 1, yesterday: 0
初版日時: 2018-06-12 (火) 13:06:16
最終更新: 2018-06-12 (火) 13:54:08 (JST) (2106d) by njf
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF