AIRアプリケーションへの組み込み
ネイティブ拡張のANEファイルが生成できたので、Flash Builder 4.6を用いてAIRアプリケーションに組み込みます。
FlexビルドパスにANEファイルを追加
Flexモバイルプロジェクトのコンテキストメニューの[プロパティ]を開きます。そして、[Flexビルドパス]パネルの[ネイティブエクステンション]のタブを開きます。次の図のように、現在使用しているネイティブ拡張の一覧と詳細が真ん中に表示されます。
ネイティブ拡張を追加するためには、[ANEを追加]ボタンを押下して、ANEファイルを選択します。[フォルダ追加]ボタンを押下してANEファイルが含まれているフォルダを指定し、フォルダ内のネイティブ拡張を探して追加してください。
追加したANEファイルは、通常のActionScriptライブラリと同様にコード補完の対象となります。
また、[AIRアプリケーション記述子を更新]にチェックを入れると、次のコードが追加されます。これは、パッケージング時にアプリケーションの使用するネイティブ拡張を示すためです。
<extensions> <extensionID>example.ane.vibrator</extensionID> </extensions>
作成例
サンプルファイルでは、ボタンを押すとネイティブ拡張を利用してバイブレーターを動作させるFlexモバイルアプリケーションを作成します。[Start Vibrator]ボタンを押下し、ネイティブ拡張コンテキストからVibrateNowネイティブ関数を呼び出します。
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160"> <fx:Script> <![CDATA[ import example.ane.Vibrator; import mx.events.FlexEvent; private var vibrator:Vibrator; protected function button1_clickHandler(event:MouseEvent):void { if( vibrator == null ){ vibrator = new Vibrator(); } vibrator.vibrateNow(); } ]]> </fx:Script> <s:Button label="Start Vibrator" click="button1_clickHandler(event)"/> </s:Application>
ANEファイルのパッケージ設定
リリースビルドを書き出す際や、FlexモバイルプロジェクトのプロパティのFlexビルドのパッケージ化のパネルで、ターゲットOSごとにANEファイルのパッケージ設定を行います。
次のようにネイティブ拡張を呼び出しているのに、該当するANEファイルをパッケージ化されていない旨が通知されるので、使うネイティブ拡張の列にあるパッケージのチェックボックスにチェックを入れます。
チェックを入れると、パッケージ化の対象になります。
また、ネイティブ拡張記述ファイルの項目について、次のような検証を行ってくれます。
- id:ネイティブ拡張のIDが正しいか
- nativeLibrary:ネイティブ拡張の利用時に、ネイティブ拡張ライブラリを含んでいるか
- initializer:初期化時に呼び出される関数やネイティブ拡張エクステンションクラスが存在するか、また、それらの名称が重複していないか
- finalizer:終了時に呼び出される関数やネイティブ拡張エクステンションクラスが存在するか、また、それらの名称が重複していないか
おわりに
本記事では、AIR 3の新機能「ネイティブ拡張」と、ネイティブ拡張をFlash Builder 4.6で利用する方法について説明しました。ネイティブ拡張を利用することで、プラットフォームごとにさまざまな機能が使えるようになりました。また、ネイティブコードで作られたライブラリなどの資産も活用でき、さらに重い処理をネイティブコードで処理することによりパフォーマンス向上が期待できます。
Flash Builder 4.6を使ってネイティブ拡張を利用すると、ネイティブ拡張のANEファイルの設定を簡単に行うことができます。コード補完もデバッグも通常通り行うことができ、ネイティブ拡張を意識する必要はありません。ぜひ、Flash Builder 4.6で生産性の高いモバイルアプリケーション開発を試してみてください。