今天我们来看看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对象。
缺省行为(Default behaviors) 当事件发生时,flash播放器会自动显示与此事件相关的行为,因为这个行为是由Flash播放器自
Class Sound Sound类 封装包 flash.media 类 全局Sound类(不知道咋翻译了) 继承 Sound - EventDispatcher -Object 子类 So
回顾和比较 AS1.0玩家最爱用onClipEvent(), on(),又方便又直接。缺点在于逻辑分散到了各个舞台元件中,难以管理和维护。
Actionscript 3.0 演变成一门强大的面向对象的编程语言意味着flash平台的重大变革。这种变化也意味着 Actionscript 3.0 将
发病症状: Internet Explorer 已经遇到加载项故障并且需要关闭。 曾用过的失败解决方法: 1、工具INTERNET选项程序管理加
语法方面的增强和改动: 引入了 package(包) 和 namespace(命名空间) 两个概念。其中 package 用来管理类定义,防止命
先发效果,效果有参考一下国外的饼图,不过他的代码,注释等我也看不懂,英文不懂,所以我就写个中文的好了。大家完全可以
在Actionscript 3.0中,如果只是简单的图形,使用代码可能会比较容易,但如果是复杂的界面.或者说其中有多层嵌套的情况,完全