株式会社ライブキャストロゴ 株式会社ライブキャスト

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とサーバーサイドプログラムの連携のようなイメージでしょうか。

それができれば、今まで培ってきたノウハウが生きるかもしれませんね!