载入 XML
XML 类不再包含载入功能。它只是用于处理 XML 结构。要载入 XML, 应执行与调用服务器端脚本相同的流程; 使用 URLReqest 和 URLLoader 类。
以下示例显示如何载入 XML 文件并响应数据载入过程的完成:
注意上例中 as
关键字在事件处理函数中的用法。在 ActionScript 3.0 中, as
关键字可用于测试一个对象的数据类型是否与另一个对象匹配。 它还可以用于将对象转换为相关数据类型。如果您接收到一个对象引用, 而引用不一定属于相同数据类型, 或是当您要测试一个数据类型是否与另一个匹配时, 这很实用。例如, 在上述代码中, 您可以使用 as
关键字检查 event.target
是否为 URLLoader。如果引用为 null
, 则它不是 URLLoader。这种验证是避免运行时错误的好方法。
使用 ActionScript 直接编写 XML
ActionScript 3.0 有一个出色的新增功能, 它可以使用 ActionScript 语句直接编写 XML。
以下示例显示一个变量, 它包含使用 ActionScript 编写的 XML:
使用点语法处理 XMLList 对象
与 ActionScript 2.0 相比, ActionScript 3.0 XML 类要好用得多, 因为您可以像访问标准对象中的属性那样访问节点。您可以使用点记号和 XMLList 方法轻松检索信息。XMLList 是一个新类, 它表示节点中的一系列子代。XMLList 的使用方法与标准数组相似。
以下示例说明如何在 books
XML 对象中实现 book
XMLList 循环:
过滤 XML 而无需循环
在 ActionScript 3.0 中使用 XML 的另一个出色功能是可以过滤 XMLList 对象而无需循环。您可以增加 XML 处理运算符, 由 Adobe Flash Player 完成工作。
以下示例说明如何通过过滤 book
XMLList 返回一个新的 XMLList, 并且它只包含 category
属性为 2
的书籍:
注意如何使用 @
运算符访问属性以及如何使用条件语句过滤结果。
访问 XML 属性
虽然新的 XML 语法使用更简单, 但必须注意节点内容并不一定计算到 String 数据类型。在条件语句中复制数据或比较字符串时, 这可能导致问题。您可以将节点值转换为 String 或使用元素的 text
方法。
以下示例将第二本书籍的作者作为文本字符串进行检索: