Adobe Flex 3 ヘルプ

外部 API の XML フォーマット

Shockwave Flash ActiveX をホストするアプリケーションと ActionScript との間の通信では、関数呼び出しと値をエンコードするために専用の XML フォーマットが使用されます。外部 API で使用される XML フォーマットには 2 つの部分があります。1 つのフォーマットは、関数呼び出しを表すために使用されます。もう 1 つのフォーマットは個々の値を表しています。このフォーマットは、関数のパラメータおよび関数の戻り値に使用されます。関数呼び出し用の XML フォーマットは、ActionScript との間の呼び出しに使用されます。ActionScript からの関数呼び出しに対して、Flash Player は XML をコンテナに渡します。コンテナからの呼び出しに対しては、Flash Player はこのフォーマットで XML ストリングを渡すコンテナアプリケーションが必要になります。次の XML は、XML フォーマットされた関数呼び出しの例を示しています。

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

ルートノードは invoke ノードです。ここには 2 つの属性があり、name は関数呼び出しの名前を表し、returntype は常に xml になります。関数呼び出しにパラメータが含まれている場合、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="name">
<string>John Doe</string>
</property>
<property id="age">
<string>33</string>
</property>
...
</object>

property ノードは個々のプロパティを定義します。id 属性はプロパティ名(ストリング)です。

その他のビルトインクラスまたはカスタムクラス

 

<null/>
または
<object></object>

ActionScript では他のオブジェクトが null または空のオブジェクトとしてエンコードされます。いずれの場合も、すべてのプロパティ値が失われます。

注意:この表では、ActionScript クラスに加えて同等の C# クラスを例示していますが、外部 API は、C# アプリケーションに限定されることなく、ActiveX コントロールをサポートする任意のプログラミング言語やランタイムとの通信に使用できます。

外部 API と ActiveX コンテナアプリケーションを使用して独自のアプリケーションを構築している場合は、ネイティブ関数の呼び出しを直列化された XML 形式に変換できるプロキシを作成すると便利です。C# で記述されたプロキシクラスの例については、ExternalInterfaceProxy クラスの内部を参照してください。.

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート