纯FLASH 网站中ActionScript3.0与XML 的结合应用
2014-06-18钱晶杨建明
钱晶 杨建明
摘要:该文阐述了在纯Flash网站中通过ActionScript3.0与XML技术的结合应用实现Flash与ASP或PHP等文件的跨平台交流,从而开发功能完整的动态网页。
关键词:FLASH网站;ActionScript3.0;XML
中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2014)11-2647-02
Abstract: This paper stated the application of ActionScript3.0 and XML techniques in pure Flash web site to implement the cross-platform interchange between Flash and ASP or PHP files for the development of full function active web pages.
Key words: Flash web site;ActionScript3.0;XML
Flash在当前在互动网站设计领域已经被广泛地应用,其独有的动画与编程相结合的开发方式深受互动设计师的青睐。ActionScript3.0是Adobe公司的Flash软件推出的新一代编程语言,与过去的ActionScript2.0相比,实现了完全面向对象,性能更加优化,功能也更强大[1]。网站中数据内容的动态更新,需要用到服务器端技术实现,一般常用ASP、PHP或JSP等技术操作数据库数据,通过数据库对数据内容的存取来完成更新。 Flash自身不能够实现动态技术,无法连接数据库,但是Flash影片可以接受或向外传数据。先通过Flash影片把数据传递给ASP或者PHP文件,ASP和PHP文件再向服务器发送请求连接数据库,并接收返回后的数据,最后向Flash影片传送回请求数据。XML使用了一种描述数据的语法,能够清晰地描述任何一种数据,此时XML成为了双方沟通的桥梁。在获取数据时,ASP、PHP和Cold Fusion等动态文件将数据转换为XML格式,然后,Flash再读取和解析这些XML内容。
1 在Flash中创建XML
ActionScript3.0中引入了E4X(ECMAScript for XML),提供了一系列XML的处理规范,可以方便快捷地操作XML,可以在FLASH中直接创建和修改XML文件[2]。E4X方法也允许在Flash中动态编辑XML元件的内容,动态添加XML元素与属性。如需向XML结构中添加一个元素节点,可以使用XML对象的appendChild()或prependChild()方法,能够在字符串中保留
这样的html元素,此外,还有insertChildAfter()、insertChildBefore()等方法,可在添加元素节点时改变节点位置。如需修改或删除XML定义中错误的内容,可以重新声明元素,将覆盖之前的定义。如要删除元素节点,可以使用delete方法。当FLASH中创建好XML对象后,可以在舞台的动态文本框中显示读取这些信息,html内容可以设置动态文本框的htmlText属性使其显示html格式文本,测试影片时将呈现为html文本形式,在文本的
位置处进行换行。
2 在FLASH中加载外部XML数据[3]
2.1加载外部XML文件
首先建立一个Flash文件,将其与XML文件保存在同一文件夹下。在ActionScript3.0中定义一个URLRequest对象,用来储存xml文件的路径信息,然后建立一个URLLoader对象来加载相应的外部文件,同时向URLLoader对象注册事件侦听,当侦听到complete事件时,表示XML文件顺利加载,加载完毕后获取加载好的XML文件的内容,并将其类型转换为XML对象。
2.2使用XMLList类解析XML对象的内容
加载好XML文件后,可使用XMLList来获取XML对象中的一个或多个元素,以实现对XML对象的解析。XMLList是XML一个或多个对象的集合,比较类似于数组,数组中的元素是一些XML对象,当XMLList中XML对象只有一个时,它又可以被当作一个纯粹的XML对象。如要获取xml文件中的某个元素,可使用trace语句跟踪元素值,像数组一样获取特定位置的元素,也可以使用*号来进行模糊匹配,使用length()方法可以获取元素的个数。
2.3遍历XML结构
在XMLList对象中,通常使用for each..in语句来遍历XML结构。例如在fla文件中,stuxml.student为一个XMLList对象,遍历该对象下的每一个元素节点,如想要输出所有student的name信息,则可定义xmlLoaded函数如下:
function xmlLoaded(event:Event):void{
stuxml=new XML(xmlLoader.data);
for each(var elements:XML in stuxml.student){
trace(elements.name);}}
如需输出元素的特定值,在遍历的过程中可以加上if判断语句来进行匹配。
3 结论
目前的Flash网站技术已经基本成熟,使用ActionScript编辑交互功能,并将所有素材有机地整合在一起,可以实现数据的动态更新技术,更由于其酷炫的动感界面、较强的视觉冲击力,互动效果好被广泛的应用在汽车行业、房地产行业和奢侈品等高端行业。网站开发人员除应具备编程技术,还需配合专业的艺术设计,便可实现界面美现、动感效果十足且功能完整的网站。
参考文献:
[1] 王愉,李文博.交互程序设计书Flash ActionScript3.0[M].北京:清华大学出版社, 2010: 473-478.
[2] 贺小霞,方宁.ActionScript3.0编程特效实战[M].北京:清华大学出版社,2010.
[3] 刘欢.Flash ActionScript3.0全站互动设计[M].北京:人民邮电出版社,2012:117-125.endprint