posted by 열정개발자 2011/09/22 15:49

마지막 은 HellowWorld 문자열 반환하는 함수를 정의하고 Native Extension에서 사용할 수 있도록 정의를 DLL을 만들었습니다.

이번에는 ANE - SWC를 만듭시다. 
ANE - SWC는 ANE을 만들 때 필요한 SWC입니다. 
기본적으로이 SWC 속에 DLL 등으로 만든 Native Extension을 호출하는 클래스를 넣습니다.

1. Native Extension을 호출 클래스 <br /> 이전 만든 Native Extension의 GetHelloWorld 함수를 호출하는 간단한 클래스입니다. 
컴파일 SWC를 만들어 둡니다.

package net.akb7.air.extension
{
    import flash.external.ExtensionContext;
 
    public class HelloWorldExtension
    {
        private var context:ExtensionContext;
 
        public function HelloWorldExtension() {
            context = ExtensionContext.createExtensionContext("nativeExtension", "type");        }
 
 
        public function GetHelloWorld() : String {
            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 하위에 필요한 파일이 있을 때
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 하위에 필요한 파일이 있을 때 디렉토리 지정
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