錢(qián)晶 楊建明
摘要:該文闡述了在純Flash網(wǎng)站中通過(guò)ActionScript3.0與XML技術(shù)的結(jié)合應(yīng)用實(shí)現(xiàn)Flash與ASP或PHP等文件的跨平臺(tái)交流,從而開(kāi)發(fā)功能完整的動(dòng)態(tài)網(wǎng)頁(yè)。
關(guān)鍵詞:FLASH網(wǎng)站;ActionScript3.0;XML
中圖分類(lèi)號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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在當(dāng)前在互動(dòng)網(wǎng)站設(shè)計(jì)領(lǐng)域已經(jīng)被廣泛地應(yīng)用,其獨(dú)有的動(dòng)畫(huà)與編程相結(jié)合的開(kāi)發(fā)方式深受互動(dòng)設(shè)計(jì)師的青睞。ActionScript3.0是Adobe公司的Flash軟件推出的新一代編程語(yǔ)言,與過(guò)去的ActionScript2.0相比,實(shí)現(xiàn)了完全面向?qū)ο?,性能更加?yōu)化,功能也更強(qiáng)大[1]。網(wǎng)站中數(shù)據(jù)內(nèi)容的動(dòng)態(tài)更新,需要用到服務(wù)器端技術(shù)實(shí)現(xiàn),一般常用ASP、PHP或JSP等技術(shù)操作數(shù)據(jù)庫(kù)數(shù)據(jù),通過(guò)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)內(nèi)容的存取來(lái)完成更新。 Flash自身不能夠?qū)崿F(xiàn)動(dòng)態(tài)技術(shù),無(wú)法連接數(shù)據(jù)庫(kù),但是Flash影片可以接受或向外傳數(shù)據(jù)。先通過(guò)Flash影片把數(shù)據(jù)傳遞給ASP或者PHP文件,ASP和PHP文件再向服務(wù)器發(fā)送請(qǐng)求連接數(shù)據(jù)庫(kù),并接收返回后的數(shù)據(jù),最后向Flash影片傳送回請(qǐng)求數(shù)據(jù)。XML使用了一種描述數(shù)據(jù)的語(yǔ)法,能夠清晰地描述任何一種數(shù)據(jù),此時(shí)XML成為了雙方溝通的橋梁。在獲取數(shù)據(jù)時(shí),ASP、PHP和Cold Fusion等動(dòng)態(tài)文件將數(shù)據(jù)轉(zhuǎn)換為XML格式,然后,F(xiàn)lash再讀取和解析這些XML內(nèi)容。
1 在Flash中創(chuàng)建XML
ActionScript3.0中引入了E4X(ECMAScript for XML),提供了一系列XML的處理規(guī)范,可以方便快捷地操作XML,可以在FLASH中直接創(chuàng)建和修改XML文件[2]。E4X方法也允許在Flash中動(dòng)態(tài)編輯XML元件的內(nèi)容,動(dòng)態(tài)添加X(jué)ML元素與屬性。如需向XML結(jié)構(gòu)中添加一個(gè)元素節(jié)點(diǎn),可以使用XML對(duì)象的appendChild()或prependChild()方法,能夠在字符串中保留
這樣的html元素,此外,還有insertChildAfter()、insertChildBefore()等方法,可在添加元素節(jié)點(diǎn)時(shí)改變節(jié)點(diǎn)位置。如需修改或刪除XML定義中錯(cuò)誤的內(nèi)容,可以重新聲明元素,將覆蓋之前的定義。如要?jiǎng)h除元素節(jié)點(diǎn),可以使用delete方法。當(dāng)FLASH中創(chuàng)建好XML對(duì)象后,可以在舞臺(tái)的動(dòng)態(tài)文本框中顯示讀取這些信息,html內(nèi)容可以設(shè)置動(dòng)態(tài)文本框的htmlText屬性使其顯示html格式文本,測(cè)試影片時(shí)將呈現(xiàn)為html文本形式,在文本的
位置處進(jìn)行換行。
2 在FLASH中加載外部XML數(shù)據(jù)[3]
2.1加載外部XML文件
首先建立一個(gè)Flash文件,將其與XML文件保存在同一文件夾下。在ActionScript3.0中定義一個(gè)URLRequest對(duì)象,用來(lái)儲(chǔ)存xml文件的路徑信息,然后建立一個(gè)URLLoader對(duì)象來(lái)加載相應(yīng)的外部文件,同時(shí)向URLLoader對(duì)象注冊(cè)事件偵聽(tīng),當(dāng)偵聽(tīng)到complete事件時(shí),表示XML文件順利加載,加載完畢后獲取加載好的XML文件的內(nèi)容,并將其類(lèi)型轉(zhuǎn)換為XML對(duì)象。
2.2使用XMLList類(lèi)解析XML對(duì)象的內(nèi)容
加載好XML文件后,可使用XMLList來(lái)獲取XML對(duì)象中的一個(gè)或多個(gè)元素,以實(shí)現(xiàn)對(duì)XML對(duì)象的解析。XMLList是XML一個(gè)或多個(gè)對(duì)象的集合,比較類(lèi)似于數(shù)組,數(shù)組中的元素是一些XML對(duì)象,當(dāng)XMLList中XML對(duì)象只有一個(gè)時(shí),它又可以被當(dāng)作一個(gè)純粹的XML對(duì)象。如要獲取xml文件中的某個(gè)元素,可使用trace語(yǔ)句跟蹤元素值,像數(shù)組一樣獲取特定位置的元素,也可以使用*號(hào)來(lái)進(jìn)行模糊匹配,使用length()方法可以獲取元素的個(gè)數(shù)。
2.3遍歷XML結(jié)構(gòu)
在XMLList對(duì)象中,通常使用for each..in語(yǔ)句來(lái)遍歷XML結(jié)構(gòu)。例如在fla文件中,stuxml.student為一個(gè)XMLList對(duì)象,遍歷該對(duì)象下的每一個(gè)元素節(jié)點(diǎn),如想要輸出所有student的name信息,則可定義xmlLoaded函數(shù)如下:
function xmlLoaded(event:Event):void{
stuxml=new XML(xmlLoader.data);
for each(var elements:XML in stuxml.student){
trace(elements.name);}}
如需輸出元素的特定值,在遍歷的過(guò)程中可以加上if判斷語(yǔ)句來(lái)進(jìn)行匹配。
3 結(jié)論
目前的Flash網(wǎng)站技術(shù)已經(jīng)基本成熟,使用ActionScript編輯交互功能,并將所有素材有機(jī)地整合在一起,可以實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)更新技術(shù),更由于其酷炫的動(dòng)感界面、較強(qiáng)的視覺(jué)沖擊力,互動(dòng)效果好被廣泛的應(yīng)用在汽車(chē)行業(yè)、房地產(chǎn)行業(yè)和奢侈品等高端行業(yè)。網(wǎng)站開(kāi)發(fā)人員除應(yīng)具備編程技術(shù),還需配合專(zhuān)業(yè)的藝術(shù)設(shè)計(jì),便可實(shí)現(xiàn)界面美現(xiàn)、動(dòng)感效果十足且功能完整的網(wǎng)站。
參考文獻(xiàn):
[1] 王愉,李文博.交互程序設(shè)計(jì)書(shū)Flash ActionScript3.0[M].北京:清華大學(xué)出版社, 2010: 473-478.
[2] 賀小霞,方寧.ActionScript3.0編程特效實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2010.
[3] 劉歡.Flash ActionScript3.0全站互動(dòng)設(shè)計(jì)[M].北京:人民郵電出版社,2012:117-125.endprint