実はプレリリースの時に、いくつかサンプルをつくってみたりしたんですが、2.2端末が少ないこともあり放置していました。
最近、AndroidマーケットでAIRが配布開始されたり、SBMのAndroidが全機種2.2だったり、Adobe MAXの影響か、Flexの方面からの盛り上がりを感じているので、AIR for Androidについて書いておきたいと思います。
1.環境構築
Adobe CS5を普通にインストールしてあって、アップデートで最新状態であれば、FlashのエクステンションをインストールすればOKです。
つまり、下記の3つが必要になります。
・Flash CS5
・AIR2.5
・Flashエクステンション(ベータなのでAdobe Labsから)
2.アプリをつくる
正しく環境構築ができていれば、Flash CS5に 新規>テンプレート>AIR for Androidが追加されています。
このテンプレートを使って作業します。
普通にFlashをつくります。フルAS3でもタイムラインを絡めてもいいです。
UI構築が自由にできるのがいいですね。
3.パブリッシュ(apkファイルの作成)
ファイル>AIR Android設定... で専用画面がでますので、ここで諸々設定します。(今回は詳細は割愛します)
※実機をもっていれば、Flashから直接転送デバッグも可能です。
でもって、こんなのをつくってみました。
西暦を和暦に変換するアプリです。
.flaファイルに記述しているActionScriptは以下のような感じです。
普通にMouseEventを記述すれば、Android上のタッチイベントになります。
import flash.events.MouseEvent;
btn_0.addEventListener(MouseEvent.CLICK, inputNum("0"));
btn_1.addEventListener(MouseEvent.CLICK, inputNum("1"));
btn_2.addEventListener(MouseEvent.CLICK, inputNum("2"));
btn_3.addEventListener(MouseEvent.CLICK, inputNum("3"));
btn_4.addEventListener(MouseEvent.CLICK, inputNum("4"));
btn_5.addEventListener(MouseEvent.CLICK, inputNum("5"));
btn_6.addEventListener(MouseEvent.CLICK, inputNum("6"));
btn_7.addEventListener(MouseEvent.CLICK, inputNum("7"));
btn_8.addEventListener(MouseEvent.CLICK, inputNum("8"));
btn_9.addEventListener(MouseEvent.CLICK, inputNum("9"));
btn_c.addEventListener(MouseEvent.CLICK, clearAll);
btn_enter.addEventListener(MouseEvent.CLICK, calc);
function inputNum(num:String):Function {
return function(e:MouseEvent){
ad.appendText(num);
}
}
function clearAll(e:MouseEvent):void {
ad.text = "";
wareki.text = "";
opt.text = "";
}
function calc(e:MouseEvent):void {
if(ad.text.length == 4){
var n:int = int(ad.text);
if(n>=1868 && n<=2100){
var year:int;
if(n<1912){
year = n - 1868 + 1;
if(year == 1){
wareki.text = "明治元年";
}else{
wareki.text = "明治" + year + "年";
}
}else if(n<1926){
year = n - 1912 + 1;
if(year == 1){
wareki.text = "大正元年";
opt.text = "※1912年 明治45年7月29日まで、7月30日より大正元年";
}else{
wareki.text = "大正" + year + "年";
}
}else if(n<1989){
year = n - 1926 + 1;
if(year == 1){
wareki.text = "昭和元年";
opt.text = "※1926年 大正15年12月24日まで、12月25日より昭和元年";
}else{
wareki.text = "昭和" + year + "年";
}
}else{
year = n - 1989 + 1;
if(year == 1){
wareki.text = "平成元年";
opt.text = "※1989年 昭和64年1月7日まで、1月8日より平成元年";
}else{
wareki.text = "平成" + year + "年";
}
}
}else{
wareki.text = "範囲外です";
}
}else{
wareki.text = "4桁入れてね";
}
}
/*
明治 1868年〜
大正 1912年〜
昭和 1926年〜
平成 1989年〜
1912年 明治45年7月29日まで、7月30日より大正元年
1926年 大正15年12月24日まで、12月25日より昭和元年
1989年 昭和64年1月7日まで、1月8日より平成元年
*/
普通につくったFlash/ActionScriptがAndroidで動きます。感動です。
場合によってはJavaで開発するよりも簡単かも知れません。逆にメニューキーを押したあと(イベントは取れます)の実装はすべて自前?とか、普通のAndroidアプリと似せようとすると面倒かもしれません。ゲームとか標準のUIに縛られないアプリなら良さそうです。
今後2.2端末も増えそうですし、開発の選択肢に検討してみるのもいいかもしれません。
問題はAIRランタイムの容量が大きいことだったり。。。