Flash CS3 文档 |
|||
| ActionScript 3.0 编程 > 使用外部 API > 使用 ExternalInterface 类 > 外部 API 的 XML 格式 | |||
ActionScript 与承载 Shockwave Flash ActiveX 控件的应用程序间的通信使用特定的 XML 格式对函数调用和值进行编码。外部 API 使用的 XML 格式分为两种。一种格式用于表示函数调用。另一种格式用于表示各个值;此格式用于函数中的参数及函数返回值。函数调用的 XML 格式用于对 ActionScript 的调用和来自 ActionScript 的调用。对于来自 ActionScript 的函数调用,Flash Player 将 XML 传递给容器;而对于来自容器的调用,Flash Player 需要容器应用程序将向其传递一个此格式的 XML 字符串。下面的 XML 片断说明了一个 XML 格式的函数调用示例:
<invoke name="functionName" returntype="xml">
<arguments>
... (individual argument values)
</arguments>
</invoke>
根节点为 invoke 节点。它具有两个属性:name,指示要调用的函数的名称;以及 returntype,总是为 xml。如果函数调用包括参数,则 invoke 节点具有一个 arguments 子节点,该节点的子节点是使用单个值格式(下面将予以说明)进行了格式设置的参数值。
每个值(包括函数参数和函数返回值)均使用一个格式设置方案,除了实际值之外,该方案还包括数据类型信息。下表列出了 ActionScript 类以及用于对该数据类型的值进行编码的 XML 格式:
|
ActionScript 类/值 |
C# 类/值 |
格式 |
注释 |
|---|---|---|---|
|
null |
null |
<null/> |
|
|
Boolean |
bool true |
<true/> |
|
|
Boolean |
bool false |
<false/> |
|
|
String |
string |
<string>string value</string> |
|
|
Number、int、uint |
single、double、int、uint |
<number>27.5</number>
<number>-12</number>
|
|
|
Array(元素可以是混合类型) |
允许混合类型元素的集合,如 ArrayList 或 object[] |
<array>
</array>
|
|
|
Object |
含有字符串键和对象值的字典,如具有字符串键的 HashTable |
<object>
</object>
|
|
|
其它内置或自定义的类 |
|
<null/>
<object></object>
|
ActionScript 将其它对象编码为 null 或空对象。不管是哪种情况,所有属性值都会丢失。 |
|
注意 |
|
该表举例说明了 ActionScript 类,并且还列出了等效 C# 类;但是,外部 API 可用来与支持 ActiveX 控件的任何编程语言或运行时进行通信,而不仅限于 C# 应用程序。 |
通过将外部 API 用于 ActiveX 容器应用程序来构建您自己的应用程序时,您可能会发现,编写代理以执行将本机函数调用转换为序列化 XML 格式的任务是非常方便的。有关使用 C# 编写的代理类的示例,请参阅深入 ExternalInterfaceProxy 类内部。
Flash CS3
当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000344.html