Ad

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

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

これは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.fullScreenWidthEditやstage.fullScreenHeightEditは正しい値が入るようになるので、実行しないよりは使い勝手は良いです。

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

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

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

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

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


Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 630, today: 1, yesterday: 0
Princeps date: 2018-06-12 (Tue) 13:06:16
Last-modified: 2018-06-12 (Tue) 13:54:08 (JST) (372d) by njf
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF