前回は、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
[...] 前回は、HelloWorldを出力するSWCとANEをつくりました。 [...]
[...] 6. ANE作成 基本的には、ここを参照してください Windows版とことなるのは、AIR extension descriptor fileです。 [...]
[...] 2 ANE 3 Platforms 4 Native C API Reference 5 ExtensionContext 6 Try Develop HelloWorld ANE DLL 7 Try Develop HelloWorld ANE SWC 8 Try Develop HelloWorld ANE AIR 9 Try Develop HelloWorld ANE EXE 10 Try AIR for iOS + [...]
[...] 3. コンパイル & ANE作成 コンパイルとANE作成は、6と7を参照 [...]
[...] 4. ANE作成 基本的には、ここを参照してください Windows版とことなるのは、AIR extension descriptor fileです。 [...]