前回は、HellowWorldという文字列返す関数を定義してNative Extensionで使えるような定義をしたDLLを作成しました。
今回は、ANE-SWCをつくりましょう。
ANE-SWCとは、ANEを作成するときに必要になるSWCです。
基本的にこのSWCの中に、DLLなどで作ったNative Extensionを呼び出すためのクラスを入れます。
1. Native Extensionを呼び出すクラス
前回作ったNative ExtensionのGetHelloWorld関数を呼び出す簡単なクラスです。
コンパイルしてSWCを作っておきます。
package net.akb7.air.extension
{
import flash.external.ExtensionContext;
public class HelloWorldExtension
{
private var context:ExtensionContext;
public function HelloWorldExtension() {
//nativeExtensionというextensionIDで取得できるNative Extensionのコンテキストを取得
context = ExtensionContext.createExtensionContext("nativeExtension", "type");
}
public function GetHelloWorld() : String {
//コンテキストにGetHelloWorldという名前で登録されている関数を呼び出します。
return "> "+context.call("GetHelloWorld") as String;
}
public function dispose() : void {
return context.dispose();
}
}
}
2. AIR extension descriptor fileを作成
Native Extensionの説明を書きます。
nativeLibrary
前回作ったNative ExtensionのDLLのパス
initializer
ここでNative Extensionの初期化時の関数を定義します。
nativeLibraryで指定したDLLから文字列で検索するためにC言語形式の関数にする必要あり。
<extension xmlns="http://ns.adobe.com/air/extension/2.5">
<id>nativeExtension</id>
<versionNumber>1.0.0</versionNumber>
<platforms>
<platform name="Windows-x86">
<applicationDeployment>
<nativeLibrary>HelloWorldExtension.dll</nativeLibrary>
<initializer>ExtInitializer</initializer>
<finalizer>ExtFinalizer</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>
3. ANE生成
下記のようなADTコマンドでANEができあがります。
ANEを配布するときはAIRのコードサイニング証明書を使うべきです。
ane作成用のADTオプションについてはここを参照
例1) カレントフォルダに必要ファイルを置いている場合 ファイル指定
adt
-package
-storetype pkcs12 -keystore test.p12
-target ane HelloWorldExtension.ane extension.xml
-swc bin\HelloWorldExtensionANE.swc
-platform Windows-x86 library.swf HelloWorldExtension.dll
例2) platform¥win配下に必要ファイルを置いている場合 ファイル指定
adt
-package
-storetype pkcs12 -keystore test.p12
-target ane HelloWorldExtension.ane extension.xml
-swc bin\HelloWorldExtensionANE.swc
-platform Windows-x86 -C platform\win library.swf HelloWorldExtension.dll
例3) platform¥win配下に必要ファイルを置いている場合 ディレクトリ指定
adt
-package
-storetype pkcs12 -keystore test.p12
-target ane HelloWorldExtension.ane extension.xml
-swc bin\HelloWorldExtensionANE.swc
-platform Windows-x86 -C platform\win .
できあがった、HelloWorldExtension.aneを次回つかいます。
4. ANEの中身
ANEのMIMEは、application/vnd.adobe.air-native-extension-package+zip です。
ANEは、ZIP形式です。解凍してみましょう。
SWC+Native Extensionって感じです。
- catalog.xml
- library.swf
- mimetype
+ META-INF
– signatures.xml
-+ ANE
— extension.xml
–+ Windows-x86
—- HelloWorldExtension.dll
—- library.swf
参考URL
ネイティブ拡張パッケージの作成
http://help.adobe.com/ja_JP/air/extensions/WSf268776665d7970d-2482335412ffea65006-8000.html