AIR for AndroidでNative Extensionsを試してみた(Flexライブラリプロジェクト編)の続きです。
前回は、Flexライブラリプロジェクトを作成してaneファイルをパッケージングしました。今回は、そのaneファイルを使うアプリケーションを作成したいと思います。
aneファイルは、swcファイルに非常に似ています。なので、swcファイルを読み込んで利用したことがあれば、aneファイルを利用するアプリケーションを作成するのはそれほど難しくありません。ライブラリをビルドパスに設定すればすぐ使えるようになります。
まず、Flexモバイプロジェクトを作成します。
Flash Builderの「ファイル」メニューから、「Flexモバイルプロジェクト」を新規作成します。
モバイルの設定では、ターゲットプラットフォームを「Google Android」のみにします。
「アプリケーションテンプレート」は、とりあえず「空白」を選択します。
「ビルドパス」では、「ネイティブエクステンション」にAIR for AndroidでNative Extensionsを試してみた(Flexライブラリプロジェクト編)で作成したaneファイルを追加します。
aneファイルに特に問題がなければこのような表示になります。
それでは、モバイルアプリケーションを作成していきたいと思います。画面は、TextInputとButtonのみのシンプルなものにしました。
Buttonを押すと、TextInputに入力された内容がToastに表示される仕組みです。
実装内容は以下のようになりました。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160"> <fx:Script> <![CDATA[ import asia.live_cast.ane.ToastExtensionLib; protected function showToastHandler(event:MouseEvent):void { var extension:ToastExtensionLib = new ToastExtensionLib(); var message:String = txtMessage.text; if (message.length > 0) { extension.showLongToast(message); } } ]]> </fx:Script> <s:VGroup width="100%" height="100%"> <s:Spacer width="10" height="3"/> <s:HGroup width="100%"> <s:Spacer width="5" height="10"/> <s:TextInput id="txtMessage" width="100%"/> <s:Spacer width="5" height="10"/> </s:HGroup> <s:HGroup width="100%"> <s:Spacer width="5" height="10"/> <s:Button width="100%" label="Show Toast" click="showToastHandler(event)"/> <s:Spacer width="5" height="10"/> </s:HGroup> </s:VGroup> </s:Application>
AIR for AndroidでNative Extensionsを試してみた(Flexライブラリプロジェクト編)で作成したクラスのインスタンスを生成し、Toastに表示させる文字列をパラメータにしてshowLongToastメソッドをコールします。
extension.showLongToast(message);
aneファイルを作成するのには非常に手間がかかったのに対して、それを設定してNative拡張を利用できるようにするのはとても簡単に実装できました。
早速、デバッグしてみます。
Native拡張を利用したモバイルアプリケーションでは、AIRシュミレーターが利用できませんので、実機でデバッグします。「デバイス上:USB経由でデバッグ(推奨)」を選択します。
実行結果は以下のようになりました。
TextInputに入力した内容が、正しくToast表示されています。
シリーズで紹介してきたAIR Native Extensionsですが、これでAndroid向けのAIRアプリケーションが完成しました。このようにAIR for AndroidでNative拡張を利用するには、ActionScriptの知識だけでなく、AndroidのNative実装についての知識も必要になってきます。
プレゼンテーションのアプリケーション部分とNative側の実装とで、分業して進めれば、生産性も上がるかもしれませんね。flashとサーバーサイドプログラムの連携のようなイメージでしょうか。
それができれば、今まで培ってきたノウハウが生きるかもしれませんね!
関連記事
- AIR for AndroidでNative Extensionsを試してみた(Flexライブラリプロジェクト編) (0.500)
- AIR for AndroidでNative Extensionsを試してみた(Androidプロジェクト編) (0.500)
- AIR for AndroidでNative Extensionsを試してみた(概要編) (0.442)
- クロスプラットフォームなAIRアプリ開発時の注意点 〜透明な描画オブジェクトがキャプチャするMouseEventについて〜 (0.059)
- クロスプラットフォームなAIRアプリ開発時の注意点 〜NativeWindowの透明度設定について〜 (0.059)