External API의 XML 형식

Shockwave Flash ActiveX 컨트롤을 호스팅하는 ActionScript와 응용 프로그램 간의 통신은 특정 XML 형식을 사용하여 함수 호출과 값을 인코딩합니다. External API에서 사용하는 XML 형식에는 두 부분이 있습니다. 한 가지 형식은 함수 호출을 나타내는 데 사용됩니다. 다른 형식은 개별 값을 나타내는 데 사용됩니다. 이 형식은 함수의 매개 변수와 함수 반환 값에 사용됩니다. 함수 호출의 XML 형식은 ActionScript에서 송수신되는 호출에 사용됩니다. ActionScript에서 함수를 호출하는 경우에는 Flash Player가 XML을 컨테이너에 전달하고, 컨테이너에서 호출하는 경우에는 Flash Player에서 컨테이너 응용 프로그램이 이 형식으로 XML 문자열을 전달해야 합니다. 다음 XML 프래그먼트는 XML 형식의 함수 호출을 보여 줍니다.

<invoke name="functionName" returntype="xml">
    <arguments>
        ... (individual argument values)
    </arguments>
</invoke>

루트 노드는 invoke 노드입니다. 이 노드에는 호출할 함수 이름을 나타내는 name과 항상 xmlreturntype의 두 가지 특성이 있습니다. 함수 호출에 매개 변수가 포함되는 경우 invoke 노드에 자식 arguments 노드가 포함되고 그 노드의 자식 노드는 아래 설명하는 개별 값 형식의 매개 변수 값이 됩니다.

함수 매개 변수와 함수 반환 값 등의 개별 값은 실제 값뿐 아니라 데이터 형식 정보가 포함된 형식 지정 스키마를 사용합니다. 다음 표에는 ActionScript 클래스 및 해당 데이터 유형의 값을 인코딩하는 데 사용되는 XML 형식이 나와 있습니다.

ActionScript 클래스/값

C# 클래스/값

형식

주석

null

null

<null/>

 

Boolean true

bool true

<true/>

 

Boolean false

bool false

<false/>

 

String

string

<string>문자열 값</string>

 

Number, int, uint

single, double, int, uint

<number>27.5</number>
<number>-12</number>

 

Array(요소는 혼합 유형일 수 있습니다.)

ArrayList 또는 object[] 등 혼합 유형 요소를 허용하는 컬렉션

<array>
<property id="0">
<number>27.5</number>
</property>
<property id="1">
<string>Hello there!</string>
</property>
...
</array>

property 노드는 개별 요소를 정의하고 id 특성은 숫자 0부터 시작하는 인덱스입니다.

Object

문자열 키가 있는 HashTable처럼 문자열 키와 객체 값이 있는 사전

<object>
<property id="이름">
<string>John Doe</string>
</property>
<property id="나이">
<string>33</string>
</property>
...
</object>

property 노드는 개별 속성을 정의하고 id 특성은 속성 이름(문자열)입니다.

기타 기본 제공 또는 사용자 정의 클래스

 

<null/>
또는
<object></object>

ActionScript에서는 다른 객체를 null 또는 빈 객체로 인코딩합니다. 두 경우 모두 속성 값이 사라집니다.

중요

 

이 표에서는 예제로 ActionScript 클래스와 함께 해당 C# 클래스를 보여 줍니다. 그러나 External API는 ActiveX 컨트롤을 지원하는 모든 프로그래밍 언어 또는 런타임 통신에 사용될 수 있으며 C# 응용 프로그램에만 사용하는 것이 아닙니다.

External API와 ActiveX 컨테이너 응용 프로그램을 사용하여 직접 응용 프로그램을 작성할 때는 네이티브 함수 호출을 직렬화된 XML 형식으로 변환하는 작업을 수행할 프록시를 작성하는 것이 편하다는 것을 알게 될 것입니다. C#으로 작성된 proxy 클래스 예제는 ExternalInterfaceProxy 클래스 내부를 참조하십시오.


Flash CS3

 

이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서

현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/main/00000344.html