会员中心
用户名:    密码:    验证码:      免费注册会员

jquery手册   CSS2手册       请关注健康

CSSer > 客户端开发 > web多媒体设计 > AS3中新的XML处理方法 - E4X

来源: 作者: 发布时间:2007-03-16
雅虎收藏夹 百度收藏 Google书签 Yahoo书签 新浪ViVi 搜狐网摘 365Key网摘 天极网摘 diglog 和讯网摘 POCO网摘 YouNote网摘 博拉网 天下图摘 Del.icio.us digg reddit spurl BlinkList blogmarks

今天我们来看看AS3中新的XML处理方法:E4X,直到现在,ECMA脚本语言规范(ECMA-262)--AscriptScript 3.0的核心基础,并没有提供任何的XML数据处理类或方法。AcriontScript之前的版本(从Flash 5中的ActionScript开始)有一些处理XML数据的类和方法,但是它们并不是基于ECMAScript标准的。

新的ECMA脚本语言规范第4版草稿中定义了一系列新的处理XML数据的类和方法。这些类和方法的集合并命名为E4X("ECMAScript for XML"),ActionScript 3.0包括如下新的E4X类: XML、XMLList、 QName和Namespace。

E4X类的方法、属性和操作的开法基于以下的目标:

简单--E4X尽可能的使得处理XML数据的代码容易编写并且易于理解。
一致性--E4X的方法于Actionscript的其它部分协调一致。
友好--实用非常好理解的操作符处理XML数据,如点号(.)。
注意:为避免与E4X中的新的XML类冲突,原来ActionScript 2.0中的XML类在ActionScript 3.0被重命名为XMLDocument,为了向前兼容,在ActionScript 3.0中遗留下来的类--XML、XMLNode、XMLParser和XMLTag--被包含进了flash.xml包中。新的E4X类是核心类--使用它们不需要import任何包。

初始化XML对象

XML对象可以代表一个XML元素、属性、注释、处理指令或文本元素。在ActionScript 3.0中我们可以直接将XML数据赋值给变量:

var myXML:XML =
<order>
<item id=’1’>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<item id=’2’>
<menuName>fries</menuName>
<price>1.45</price>
</item>
</order>你也可以使用new 构造器来从XML数据文本创建一个XML对象实例:

var myXML:XML = new XML("<order><item id=’1’><menuName>burger</menuName><price>3.95</price></item></order>")
如果XML数据不是格式完好的(如少了结束标签),那么将会出现运行时错误。
注意,你也可以将变量实例传入XML数据中:

var tagname:String = "item";
var attributename:String = "id";
var attributevalue:String = 5;
var content:String = "Chicken";
var x:XML = <{tagname} {attributename}={attributevalue}>{content}</{tagname}>;
trace (x.toXMLString())
// Output: <item id="5">Chicken</item>
通常,我们的应用是从外部源导入XML数据,如web service或RSS feed,以下是一个从远程URL导入XML数据的例子:

var myXML:XML = new XML();
var XML_URL:String = "http://www.example.com/Sample3.xml";
//创建URLRequest。
var myXMLURL:URLRequest = new URLRequest(XML_URL);
//使用URLLoader导入数据。
var myLoader:URLLoader = new URLLoader(myXMLURL);
//添加事件监听器,以在XML数据导入完成后处理XML数据。
myLoader.addEventListener("complete", xmlLoaded);
//导入完成后,创建使用导入的数据创建XML对象
function xmlLoaded(evtObj:Event) {
var myXML:XML = XML(myLoader.data);
trace("Data loaded.");
}
为了演示代码的清晰性,本文中的大部份示例都第1种直接使用文本的方法创建XML对象。


共4页: 上一页 1 [2] [3] [4] 下一页

相关文章

  • as3中的事件处理-缺省行为

    缺省行为(Default behaviors) 当事件发生时,flash播放器会自动显示与此事件相关的行为,因为这个行为是由Flash播放器自

  • AS3的Sound类相关资料搜集

    Class Sound Sound类 封装包 flash.media 类 全局Sound类(不知道咋翻译了) 继承 Sound - EventDispatcher -Object 子类 So

  • AS3.0强大的事件机制

    回顾和比较 AS1.0玩家最爱用onClipEvent(), on(),又方便又直接。缺点在于逻辑分散到了各个舞台元件中,难以管理和维护。

  • ActionScript 3.0 概要

    Actionscript 3.0 演变成一门强大的面向对象的编程语言意味着flash平台的重大变革。这种变化也意味着 Actionscript 3.0 将

  • 解决FLASH9.OCX加载项故障

    发病症状: Internet Explorer 已经遇到加载项故障并且需要关闭。 曾用过的失败解决方法: 1、工具INTERNET选项程序管理加

  • ActionScript 3 相对于 ActionScript 2 新的特性和

    语法方面的增强和改动: 引入了 package(包) 和 namespace(命名空间) 两个概念。其中 package 用来管理类定义,防止命

  • flash纯动态生成饼图

    先发效果,效果有参考一下国外的饼图,不过他的代码,注释等我也看不懂,英文不懂,所以我就写个中文的好了。大家完全可以

  • ActionScript 3.0中的嵌套影片剪辑控制

    在Actionscript 3.0中,如果只是简单的图形,使用代码可能会比较容易,但如果是复杂的界面.或者说其中有多层嵌套的情况,完全