从ActionScript 2.0迁移到ActionScript 3.0: 主要概念和更改-使用 XML

来源:互联网 发布:亚马逊热卖产品数据 编辑:程序博客网 时间:2024/06/05 03:44

载入 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 方法。

以下示例将第二本书籍的作者作为文本字符串进行检索:

原创粉丝点击