Flash CS5.5でAndroidのネイティブ拡張にゼロから取り組んでみる、3

By | 2011年12月1日

Flash CS5.5環境で、Android向けのANEにゼロから取り組んでみましたので手順をご紹介します。
準備と流れの紹介aneファイルのパッケージ化と来て、今回がラストのAIR作成です。

●フォルダ構造の完成図

最終的に、フォルダ構造はこんな感じになります。

Android ANE作成、フォルダ構造

Android ANE作成、フォルダ構造


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のアイコンの左に三角が表示されるので、内容を展開してリンクの種類に外部を設定します。

ANE作成。swc設定

ANE作成。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 (英語の解説動画)

One thought on “Flash CS5.5でAndroidのネイティブ拡張にゼロから取り組んでみる、3

  1. Pingback: Android環境のANEにゼロから取り組んでみる、2 | cda244 blog

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です