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 または空のオブジェクトとしてエンコードされます。いずれの場合も、すべてのプロパティ値が失われます。 |
外部 API と ActiveX コンテナアプリケーションを使用して独自のアプリケーションを構築している場合は、ネイティブ関数の呼び出しを直列化された XML 形式に変換できるプロキシを作成すると便利です。C# で記述されたプロキシクラスの例については、ExternalInterfaceProxy クラスの内部を参照してください。.
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート