AIR for Androidメモ

年越し前からAndroidアプリの作成をしています。
FlexもFlash BuilderでのAndroidアプリ開発についても全く皆無なので調べてみたんですが、情報があちこちにあって大変なのでこちらに調べたものをまとめておこうと思います。

Flex関係

パーツを配置

Flex4で追加されたSparkコンテナではコンポーネントやスキンを配置する際にaddChildではなく、addElementを使うみたいです。
削除したい時もremoveChildではなく、removeElementを使います。

var label:Label = new Label();
label.text = "hoge";
//addChild(label); エラー
addElement(label);
removeElement(label);

画像埋め込み

ActionScriptでは以下のように書いていましたが、

[Embed(source = '../asset/hoge.png')]
private var hogeImg:Class;

Flexでは以下のように書きます。

[Embed(source='../asset/piyo.png')]
[Bindable]
private var piyoImg:Class;

traceを出力

デバッグの時だけ出力されます。虫のボタンを押しましょう。

Stageを取得

よくわかってないのですが、Flexだとstageにアクセスするとnullが返ってくる場合があるらしく、それを回避する方法。

var target: DisplayObject = this;
while (target.parent) {
	target = target.parent;
}
var s:Stage = target as Stage;

AIR for Android関係

アプリの起動画面

アプリが起動が起動したときに出るスプラッシュ画像の設定です。default packageのhoge.mxmlに「splashScreenImage」プロパティを設定します。

<s:MobileApplication xmlns:fx=(省略) firstView="views._hoge" splashScreenImage="@Embed(source='hoge.png')">

ボタン検知

戻るボタンやメニューボタンを押した時のイベントを拾うにはこのように書きます。
アプリ内で独自に戻るボタンなどは作ってもいいんですが、共通してあるボタンなのでこちらにもイベントを設定しておいた方がいいんじゃないかと思います。

protected function init():void{
	addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
}

protected function onKeyDownHandler(e:KeyboardEvent):void{
	if (e.keyCode == Keyboard.BACK){
		//戻るボタンを押した時の処理
	} else if (e.keyCode == Keyboard.MENU){
		//メニューボタンを押した時の処理
	} else if (e.keyCode == Keyboard.SEARCH){
		//検索ボタンを押した時の処理
	}
}

アプリの終了

アプリを閉じるだけだとアプリはバックグラウンドで動き続けるけど、閉じた時にバックグラウンドで動かさずアプリを終了させる方法。

protected function init():void{
	addEventListener(Event.DEACTIVATE , onDeactivateHandler);
}

protected function onDeactivateHandler( e:Event ):void{
	NativeApplication.nativeApplication.exit();
}

エミュレータ用にapkファイルを作成

Android2.2以上の端末をお持ちでない方で、一応エミュレータでもチェックしておきたいって方もいると思います。
Flash Builderでリリース用にビルドしたapkファイルはエミュレータにはインストールできないので、以下の方法でapkファイルを作成します。

※ここは開発に最低限の知識があることを前提に書いてます。こちらを読めば理解できるでしょう。

/* apkの作成。***にファイル名を入れてください。***.apkはビルドされて作成された時のファイル名になります。
adt -package -target apk-emulator -storetype pkcs12 -keystore ***.p12 ***.apk ***-app.xml ***.swf

//エミュレータにインストール
adb install -r ***.apk

本来、デバイス用にビルドする場合は「target apk」のみで「-emulator」がいらなかったりしますが、Flash CS5やFlash Builder Burritoを使ってビルドすれば特に気にすることもないでしょう。
ちなみにデバイス用・エミュレータ用にビルドするには「target apk-debug」でいけるようです。(デバイスを持ってないので確認してませんが)

また、調べてみて分かったことがあれば追記していきます。

この記事をブックマーク・シェアする

この記事に関連する記事

カテゴリ

コメント

コメントを残す

コメント*

コメントリンクを nofollow free に設定することも出来ます。

誤字・脱字やリンク切れなどお気づきの点がございましたら@loop0429までよろしくお願いします。

この記事の先頭へ