패키지 | flash.external |
클래스 | public final class ExtensionContext |
상속 | ExtensionContext EventDispatcher Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
ExtensionContext 클래스는 장치에서 확장이 설치된 디렉토리에 액세스할 수 있도록 정적 메서드 getExtensionDirectory()
도 제공합니다. 데이터를 확장의 기본 구현과 공유하기 위한 actionScriptData
속성도 제공합니다.
참고:
extendedDesktop
프로파일을 사용하는 AIR 응용 프로그램은 NativeProcess 클래스를 사용하여 기본 프로세스를 실행할 수 있습니다.
기타 예제
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
actionScriptData : Object
이 컨텍스트와 연결된 ActionScript 객체입니다(있는 경우). | ExtensionContext | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object |
메서드 | 정의 주체 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | ||
functionName에 의해 지정된 기본 함수를 호출합니다. | ExtensionContext | ||
[정적]
지정된 확장 식별자 및 컨텍스트 유형에 대해 ExtensionContext 인스턴스를 만듭니다. | ExtensionContext | ||
이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | ||
ExtensionContext 인스턴스를 지웁니다. | ExtensionContext | ||
[정적]
장치에서 확장이 설치된 디렉토리를 반환합니다. | ExtensionContext | ||
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
이벤트 | 요약 | 정의 주체 | ||
---|---|---|---|---|
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | |||
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | |||
ExtensionContext 클래스는 Adobe AIR 기본 확장의 기본 구현에 있는 기능을 호출하는 데 사용할 수 있는 인터페이스를 제공합니다. | ExtensionContext |
actionScriptData | 속성 |
actionScriptData:Object
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
이 컨텍스트와 연결된 ActionScript 객체입니다(있는 경우).
어떠한 ActionScript 객체라도 ExtensionContext 인스턴스와 연결할 수 있습니다. 기본 구현은 이 ActionScript 객체를 가져오고 설정할 수도 있습니다. 따라서 actionScriptData
를 사용하여 확장의 ActionScript 측과 기본 구현 측 간에 데이터를 공유할 수 있습니다.
actionScriptData
의 값을 null
로 설정할 수도 있습니다.
구현
public function get actionScriptData():Object
public function set actionScriptData(value:Object):void
오류
IllegalOperationError — 메서드 dispose() 는 이미 이 ExtensionContext 인스턴스에서 호출되었습니다.
|
call | () | 메서드 |
public function call(functionName:String, ... args):Object
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
functionName
에 의해 지정된 기본 함수를 호출합니다. 추가 인수는 기본 함수에 전달됩니다.
매개 변수
functionName:String — 기본 구현에서 함수를 나타내는 이름입니다. 이 이름이 기본 함수의 실제 이름이 아닐 수도 있습니다. 이 이름은 단지 확장의 ActionScript 측과 기본 구현 측에서 서로 동의한 이름입니다.
| |
... args — 기본 함수에 대한 인수의 목록입니다. 이들 인수는 어떠한 ActionScript 객체가 될 수도 있습니다. 즉, 프리미티브 유형 또는 ActionScript 클래스 객체일 수도 있습니다. 인수의 유형과 순서는 확장의 ActionScript 측과 기본 측에서 서로 동의한 것입니다.
|
Object — 기본 함수에 의해 반환된 값입니다. 기본 함수에 반환 값이 없거나 기본 함수가 잘못된 객체 참조를 반환하는 경우 반환 값은 null 입니다.
|
오류
ArgumentError — functionName 에 의해 지정된 이름에 해당하는 함수가 없습니다.
| |
IllegalOperationError — 메서드 dispose() 는 이미 이 ExtensionContext 인스턴스에서 호출되었습니다. 기본 함수가 잘못된 객체 참조를 반환하는 경우에도 이 오류가 발생합니다.
|
createExtensionContext | () | 메서드 |
public static function createExtensionContext(extensionID:String, contextType:String):ExtensionContext
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
지정된 확장 식별자 및 컨텍스트 유형에 대해 ExtensionContext 인스턴스를 만듭니다.
매개 변수
extensionID:String — 확장의 확장 식별자입니다. 이 식별자의 값은 확장 설명자 파일에서 id 요소의 값과 동일합니다. 응용 프로그램 개발자는 응용 프로그램 설명자 파일의 extensionID 요소에서도 이 값을 사용합니다. 모든 확장은 단일 전역 네임스페이스를 공유합니다. 따라서 이름 충돌을 방지하려면 확장 식별자에 대해 역 DNS 표기법을 사용하십시오.
| |
contextType:String — 확장의 컨텍스트 유형입니다. 컨텍스트 유형에 따라 기본 구현이 서로 다른 초기화를 수행할 수 있습니다. 이러한 차이점에는 ActionScript 쪽에서 호출할 수 있는 다양한 기본 함수를 지정하는 기본 구현이 포함될 수 있습니다. 컨텍스트 유형의 값은 확장의 ActionScript 쪽과 기본 쪽에서 서로 동의한 문자열입니다. 단순한 확장에서는 여러 개의 컨텍스트 유형을 사용하지 않는 경우가 많습니다. 이러한 경우에는 빈 문자열 contextType 값에 대해 "" 또는 null 을 전달하십시오.
|
ExtensionContext — 새로운 ExtensionContext 인스턴스입니다. 제공된 extensionID 값을 가진 확장을 사용할 수 없거나 제공된 extensionID 의 extension.xml 문서에 지정된 컨텍스트 이니셜라이저 함수를 검색 또는 실행할 수 없는 경우 null 을 반환합니다.
|
오류
ArgumentError — extensionID 매개 변수가 null 이거나 유효한 확장 ID가 아닙니다.
|
dispose | () | 메서드 |
public function dispose():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
ExtensionContext 인스턴스를 지웁니다.
런타임이 기본 구현을 알리면, 이를 통해 연결된 기본 리소스를 해제할 수 있습니다. dispose()
를 호출한 후에는 코드가 call()
메서드를 호출할 수 없으며, actionScriptData
속성을 가져오거나 설정할 수 없습니다.
getExtensionDirectory | () | 메서드 |
public static function getExtensionDirectory(extensionID:String):File
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
장치에서 확장이 설치된 디렉토리를 반환합니다.
확장의 ActionScript 코드에서 액세스하려는 이미지 등의 리소스가 확장에 포함되어 있는 경우도 있습니다. 때로는 확장 버전 번호 등 확장 설명자 파일에서 사용할 수 있는 정보도 코드에 필요합니다. 이 메서드를 사용하여 확장의 기본 디렉토리에 액세스할 수 있습니다.
장치에서 확장의 위치에 관계없이 확장의 파일은 확장의 이 기본 디렉토리를 기준으로 항상 동일한 위치에 있습니다. 이 메서드가 반환하는 File 인스턴스를 사용하면 확장에 포함된 특정 파일을 탐색하고 조작할 수 있습니다.
확장 디렉토리의 구조는 다음과 같습니다.
extension base directory/ platform independent files META-INF/ ANE/ extension.xml platform name/ platform-dependent files and directories
확장 디렉토리 위치는 확장이 응용 프로그램 번들링을 통해 제공되는지 아니면 장치 번들링을 통해 제공되는지에 따라 다름과 같습니다.
- 응용 프로그램 번들링의 경우 확장 디렉토리의 위치는 응용 프로그램 디렉토리 내부입니다.
- 장치 번들링의 경우 확장 디렉토리의 위치는 장치에 따라 다릅니다.
iOS 장치용 기본 확장의 경우 getExtensionDirectory()
사용에 대해 예외가 있습니다. 이러한 확장의 리소스는 확장 디렉토리에 있지 않으며 최상위 응용 프로그램 디렉토리에 있습니다.
매개 변수
extensionID:String — 확장의 확장 식별자입니다. 이 식별자의 값은 createExtensionContext() 에 있는 extensionID 매개 변수의 값과 동일합니다.
|
File — 확장이 설치된 디렉토리의 File 인스턴스입니다.
|
오류
TypeError — extensionID 매개 변수는 null이 아니어야 합니다.
| |
ArgumentError — extensionID 인수에 지정된 값이 유효하지 않습니다. 디렉토리가 없습니다.
|
status | 이벤트 |
flash.events.StatusEvent
속성 StatusEvent.type =
flash.events.StatusEvent.STATUS
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 2.5 |
ExtensionContext 클래스는 Adobe AIR 기본 확장의 기본 구현에 있는 기능을 호출하는 데 사용할 수 있는 인터페이스를 제공합니다. 확장에 포함된 ActionScript 클래스에서만 이 클래스를 사용할 수 있습니다.
AIR 프로파일 지원: AIR 3부터 시작하여 이 기능은 휴대 장치에서 지원됩니다. AIR 3부터 시작하여 extendedDesktop
장치 프로파일을 사용하는 데스크톱 장치의 응용 프로그램에서도 지원됩니다. AIR 2.5부터 시작하여 extendedTV
장치 프로파일을 사용하는 AIR for TV 장치의 응용 프로그램에서 지원됩니다.
기본 확장의 구성 요소:
- ActionScript 클래스.
- 기본 코드. 기본 코드는 런타임 외부의 장치에서 실행되는 코드입니다. 예를 들어 C에 작성하는 코드가 기본 코드입니다.
기본 확장을 만들어 다음을 수행할 수 있습니다.
- AIR 응용 프로그램에 장치별 기능에 대한 액세스를 제공합니다.
- 기존 기본 코드를 재사용합니다.
- 기본 코드를 사용하여 ActionScript 코드보다 효율적인 처리를 제공합니다.
확장의 ActionScript 측에서 ExtensionContext 클래스를 사용하여 확장의 기본 구현 측에 액세스합니다. 먼저, ExtensionContext 클래스의 인스턴스를 만듭니다. 이렇게 하려면 정적 메서드 ExtensionContext.createExtensionContext()
를 호출합니다.
ExtensionContext 인스턴스를 만든 후에 인스턴스의 call()
메서드를 사용하여 기본 함수를 호출합니다.
ExtensionContext 인스턴스에 대한 작업을 마쳤으면 dispose()
를 호출하여 연결된 기본 리소스를 해제합니다. 명시적인 dispose()
호출 없이 런타임 가비지 수집기는 인스턴스를 지울 때 dispose()
를 호출합니다. 명시적인 dispose()
호출은 일반적으로 가비지 수집기를 기다리기 훨씬 전에 수행됩니다.
ExtensionContext 인스턴스는 기본으로 구현된 확장에서 일부 비동기적 이벤트가 발생할 때 기본 코드가 전달하는 StatusEvent 이벤트를 수신할 수 있습니다. ExtensionContext 클래스는 EventDispatcher에서 파생되기 때문에 이벤트를 전달할 수 있습니다.
status
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
code | 객체의 상태에 대한 설명입니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
level | "status" , "warning" 또는 "error" 같은 메시지 범주입니다. |
target | 상태를 보고하는 객체입니다. |
Tue Jun 12 2018, 03:17 PM Z