AIR 3 Native Extension 7 Try Develop HelloWorld ANE SWC

前回は、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

government,politics news,politics news,politics
 

タグ: , ,

コメント / トラックバック5件

  1. [...] 前回は、HelloWorldを出力するSWCとANEをつくりました。 [...]

  2. [...] 6. ANE作成 基本的には、ここを参照してください Windows版とことなるのは、AIR extension descriptor fileです。 [...]

  3. [...] 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 + [...]

  4. [...] 3. コンパイル & ANE作成 コンパイルとANE作成は、6と7を参照 [...]

  5. [...] 4. ANE作成 基本的には、ここを参照してください Windows版とことなるのは、AIR extension descriptor fileです。 [...]