Flex / AIR 플랫폼에서 native 구현부를 ANE라고 한다.


ANE를 만들기 위해서는 다음과 같은 동작이 필요하다


하기 예는 Windows를 환경에서의 과정이다.


1. native 코드로 (여기서는 C++) 기능을 구현한다.

구현시엔 하기와 같은 파일을 첨부하며 Flex에서 호출할수 있도록 함수 리스트를 추가해준다.


#include "FlashRuntimeExtensions.h"  


기능 구현

FREObject functions(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[])   

{

//C++ 코드

}

함수 리스트 추가

void ContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctions, const FRENamedFunction** functions) { 

 *numFunctions = 12; //사용할 함수 개수

 FRENamedFunction* func = FRENamedFunction*)malloc(sizeof(FRENamedFunction)*(*numFunctions)); 

  func[0].name = (const uint8_t*)함수이름"; //Flex에서 call할때 쓸 이름

 func[0].functionData = NULL; 

 func[0].function = 실제 구현한 함수의 포인터; 

*functions = func;  //설정한 함수리스트를 함수의 포이턴에 추가해준다.

2. native 구현한 함수를 call하는 Flex 프로젝트를 생성하여 빌드한다.

빌드해서 만들어진 swc의 확장자를 바꿔서 압축을 풀면 catalog.xml/library .swf 파일을 확인할수 있다.


3. 1번에서 만든 dll / 2번에서 빌드한 swc, xml, swf 파일을 하나의 폴더에 복사한다.


4. C:\Users\User\Documents\flex_sdk_4.6\flex_sdk_4.6\bin\adt -package -target ane 생성될 ane파일명.ane extension.xml -swc 2번에서 생성한.swc -platform Windows-x86 1번에서 생선한.dll library.swf

5. 생성된 ane 파일을 Flex/AIR에서 프로젝트 properties - flex build packaging - native extensions에서 추가하면 해당 ane를 사용할수 있다.





by 무위자연 2014. 12. 11. 11:36