Flash CS5.5環境で、Android向けのANEにゼロから取り組んでみましたので手順をご紹介します。
準備と流れの紹介、aneファイルのパッケージ化と来て、今回がラストのAIR作成です。
●フォルダ構造の完成図
最終的に、フォルダ構造はこんな感じになります。
1つずつ確認しますと、
helloane.fla、helloane-app.xml、helloane.swfはこれから作成するファイルです。
次のaneフォルダは前回用意したaneファイル他、もろもろが含まれています。
libsフォルダも今回新しく作るフォルダで、後で説明しますが、aneファイルとswcファイルを格納します。
test.p12はaneファイルをパッケージする時に使用した証明書です。今回、apkファイルをパッケージする時もこれを使用します。
●aneファイルをコピー
前回用意したaneファイルを、新しく作るlibsフォルダにコピーします。以降、aneフォルダは使用しません。
拡張子がaneのままだとFlashがコンポーネントとして認識しないので、上のフォルダ構造完成図のようにaneファイルを複製して拡張子をswcに変更します。この時、aneファイルはapkファイルをパッケージする時に使用するのでこのまま残しておいてください。
●flaファイル作成
swcが用意できましたらflaファイルを作成します(図中のhelloane.fla)。プレイヤーバージョンは AIR for Android です。
スクリプトの設定画面でライブラリパスに先ほど作成したswcを指定します。追加すると、swcのアイコンの左に三角が表示されるので、内容を展開してリンクの種類に外部を設定します。
引き続き、AIR設定画面の権限で、INTERNETにチェックを入れます。
app.xmlが自動で更新されるのが気になる場合は「アプリケーション記述ファイルへの〜手動で管理します。」にチェックを入れましょう。
AIR設定画面を開くと、helloane-app.xmlが作成または更新されます。
●ネイティブ拡張のためのスクリプト記述
メインタイムラインにダイナミックテキストフィールドを作成し、インスタンス名を「txt」とします。
フォントは_ゴシックか_等幅です。サイズは文字が読めればいくつでも構いません。
今回は簡単なサンプルなので、直接メインタイムラインにコードを記述します。
swcにパスを通しているのでコードアシストが機能すると思います。
import com.cda244.helloworldane.HelloWorldANE; import flash.text.TextField; import flash.events.MouseEvent; var txt:TextField; var h:HelloWorldANE = new HelloWorldANE(); txt.addEventListener(MouseEvent.CLICK, sClick ); txt.text="Tap here\n"; function sClick(e:MouseEvent):void { var str:String=h.callSayHello()+"\n"; txt.appendText(str); }
ステージ上のテキストフィールドをタップするたびにネイティブ拡張ライブラリから「Hello World」の文字列を受け取って表示します。
●helloane-app.xmlを修正
自動で書き出されるapp.xmlですが、ネイティブ拡張のために追加記述する箇所があります。
applicationタグの下、androidタグやiconタグと同列に以下のextensionsタグを追加します。
<extensions> <extensionID>com.cda244.helloworldane.HelloWorldANE</extensionID> </extensions>
extensionIDの中は、前回作成したextension.xml内のidタグと同じものです。
●swfの書き出し
flaファイルに戻って、swfを書き出します。
ムービープレビューをしても画面が立ち上がりませんが、swfが書き出されています。
●apkにパッケージ
CS5.5では直接パッケージできないので、コマンドラインに以下の様に入力します。
改行していますが1行で入力してください。
adt -package
-target apk
-storetype pkcs12
-keystore test.p12 helloane.apk helloane-app.xml helloane.swf
-extdir libs
test.p12やhelloane.apkは各自の環境に合わせて適宜修正して下さい。
パスワード入力後、やっとapkが形になります。
●端末にインストール
USBで端末が接続している場合、以下の方法でインストールする事ができます。
コマンドラインに以下の様に1行で入力します。
adb install -r helloane.apk
-r をつけると、上書きインストールになるので、頻繁に端末で確認する場合に便利です。
「Success」と表示されたら無事終了です。アプリケーションを起動してテキストフィールドをタップしてみて下さい。タップの度に「Hello World」が表示されると思います。
●感想
慣れれば気にならないのでしょうが、Flash、Eclipse、コマンドラインを行ったり来たりで作業する事になりそうで、精神的なハードルが高いですね。
ひとまず、色々使えそうな通知、バイブレーション、トースト、インテント投げ、あたりのaneを作成しながら体に覚え込ませる必要がありそうです。Flash Builderの記事の方が圧倒的ですが、CS5.5でもネイティブ連携ができる、という事がわかったので一安心です。
●終わりに、すごくためになった参考
長々書きましたが、こちらの2つを見ればズバリわかります。
・第29回「Flash CS 5.5でネイティブ拡張ライブラリを使ってみる。【AIR for Android編】」の巻 -特産の「もっさみな」
・AIR 3.0 – Compile an ANE app with command line on Windows (英語の解説動画)
Pingback: Android環境のANEにゼロから取り組んでみる、2 | cda244 blog