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

ExtensionContext는 AIR에서 기본 라이브러리에있는 함수를 호출하는 클래스입니다. 
엄밀히 말하면, FREContext에 등록한 이름과 연관되는 함수를 호출합니다.

다음 예제와 같이 ANExtension는 extensionID을 가진 Native Extension에 액세스하는 데 
ExtensionContext.createExtensionContext를 사용하여 인스턴스를 취득하고 있습니다.

package com.example {
    public class ANExample extends EventDispatcher {
 
        private var extContext:ExtensionContext;
 
        public function ANExample() {
            extContext = ExtensionContext.createExtensionContext("ANExtension", "type");
        }
 
    }
}


다음 함수를 호출하는 경우입니다.
ExtensionContext 인스턴스 call 함수를 사용하여 호출합니다.

ExtensionContext.call 함수
 1 인수가 함수 이름
 2 인수가 함수 인수

함수 이름은 Native Extension 측에서 등록한 함수 이름입니다. 여기에서 5 참조
 

package com.example {
    public class ANExample extends EventDispatcher {
 
        private var extContext:ExtensionContext;
 
        public function getData(args:Array):String {
           return extContext.call("getData",args);
        }
    }
}


다음 상태 이벤트를 검색합니다.
Native Extension 측에서 FREDispatchStatusEventAsync ()를 호출
ExtensionContext 인스턴스 상태 이벤트가 발생합니다.

package com.example {
    public class ANExample extends EventDispatcher {
 
        private var extContext:ExtensionContext;
 
        public function ANExample() {
             extContext = ExtensionContext.createExtensionContext("ANExtension", "type");
       extContext.addEventListener(StatusEvent.STATUS, onStatus);
        }
 
        public function onStatus(event:StatusEvent):void {
            dispatchEvent (new Event (event.level) );
        }
    }
}

상태 이벤트는 스레드를 사용한 비동기 처리 종료 등을 알리는 데 유용하다.