As3.0 xml + Loader應(yīng)用代碼
更新時(shí)間:2008年03月11日 11:47:32 作者:
簡(jiǎn)單說說AS3.0中對(duì)于XML支持的不同吧:
.AS2.0對(duì)XML的支持勉勉強(qiáng)強(qiáng),將就著可以用。而AS3.0中對(duì)XML的支持是全方位的,極其強(qiáng)大和靈活的
AS2.0對(duì)XML的支持不是內(nèi)建的(build-in),也并非基于ECMAScript for XML(E4X)標(biāo)準(zhǔn)。而AS3.0中對(duì)XML的支持符合E4X標(biāo)準(zhǔn),它的設(shè)計(jì)有三個(gè)優(yōu)點(diǎn):
1. 簡(jiǎn)易。包括操作和可讀性。你會(huì)發(fā)現(xiàn)AS3.0中對(duì)于XML的操作猶如對(duì)一個(gè)普通Object對(duì)象一樣淺顯易懂。語(yǔ)句非常淺白流暢。
2. 連續(xù)性。其各個(gè)功能的設(shè)計(jì)和AS3.0其余的部分思想一致,易于理解。
3. 熟悉。操作符和操作邏輯對(duì)我們來說都相當(dāng)熟悉易用。
在AS2.0時(shí)代,為了解決這部分的問題
效率。
效率包括兩方面,開發(fā)效率,和代碼執(zhí)行效率。開發(fā)效率的論述見上。AS3.0對(duì)于XML的執(zhí)行效率遠(yuǎn)遠(yuǎn)高過沒有內(nèi)建XML支持的AS2.0。
XML的輸入
在AS2.0時(shí)代,在代碼行中輸入XML代碼是一種痛苦。如果不是從文件中讀取,那么我們就要忍受一長(zhǎng)串?dāng)D在一塊兒的字符串。
而在AS3.0中,太簡(jiǎn)單了。直接按照XML的內(nèi)容輸即可,想換行就換行,想Tab就Tab,就一個(gè)字,爽。
新建一個(gè)fla,選中第一幀,F(xiàn)9打開動(dòng)作面板,輸入如下代碼:
//http://www.kingda.org
//例1
var kingdaXML:XML =
<tutorial>
<item id='1'>
<level>2</level>
<title> First touch of Flash 9</title>
</item>
<item id='2'>
<level>3</level>
<title> Binding Classes</title>
</item>
<item id='3'>
<level>4</level>
<title>Document Class</title>
</item>
</tutorial>
trace (kingdaXML.item[1].level); //output:3
//例2
var kS:String = "<root><txt>this is a test</txt></root>";
var kXML:XML = new XML(kS);
trace (kXML.txt); //output:this is a test;
例1中注意到?jīng)],直接寫XML內(nèi)容在后面,想換行就換行,想tab就tab,多爽。不想AS2.0中寫string時(shí),換個(gè)行就不行了。
寫完這一句后,我們所寫出的類似于string的形式立刻就被Flash理解成了XML對(duì)象了,所以我們馬上就可以用"."操作符來訪問相應(yīng)的屬性。本例中訪問了第2個(gè)item節(jié)點(diǎn)的level值。
這么簡(jiǎn)便直觀的訪問方式是不是比 AS2.0中那千遍一律的childNodes要好得多?
不過要注意,最后可以加";"結(jié)束。但我為了XML的視覺美觀沒有加。這個(gè)沒有關(guān)系,編譯時(shí)不會(huì)考慮這一點(diǎn)。
事實(shí)上只要你喜歡,AS1.0, 2.0, 3.0中語(yǔ)句結(jié)束都可以不加";"號(hào)。但是這并不是一個(gè)好的編程習(xí)慣,更不符合嚴(yán)謹(jǐn)?shù)淖晕艺Z(yǔ)法要求。因此我建議,除了XML可以不加外,其余的都應(yīng)該加,呵呵。
例2展示了如何將一個(gè)包含了XML內(nèi)容的字符串轉(zhuǎn)換成XML對(duì)象。用的是XML的構(gòu)造函數(shù)轉(zhuǎn)換的。
AS3更有趣的是,可以使用已有的變量來直接構(gòu)造XML,帶來方便的編程特性。如下例。
1. 簡(jiǎn)易。包括操作和可讀性。你會(huì)發(fā)現(xiàn)AS3.0中對(duì)于XML的操作猶如對(duì)一個(gè)普通Object對(duì)象一樣淺顯易懂。語(yǔ)句非常淺白流暢。
2. 連續(xù)性。其各個(gè)功能的設(shè)計(jì)和AS3.0其余的部分思想一致,易于理解。
3. 熟悉。操作符和操作邏輯對(duì)我們來說都相當(dāng)熟悉易用。
在AS2.0時(shí)代,為了解決這部分的問題
效率。
效率包括兩方面,開發(fā)效率,和代碼執(zhí)行效率。開發(fā)效率的論述見上。AS3.0對(duì)于XML的執(zhí)行效率遠(yuǎn)遠(yuǎn)高過沒有內(nèi)建XML支持的AS2.0。
XML的輸入
在AS2.0時(shí)代,在代碼行中輸入XML代碼是一種痛苦。如果不是從文件中讀取,那么我們就要忍受一長(zhǎng)串?dāng)D在一塊兒的字符串。
而在AS3.0中,太簡(jiǎn)單了。直接按照XML的內(nèi)容輸即可,想換行就換行,想Tab就Tab,就一個(gè)字,爽。
新建一個(gè)fla,選中第一幀,F(xiàn)9打開動(dòng)作面板,輸入如下代碼:
//http://www.kingda.org
//例1
var kingdaXML:XML =
<tutorial>
<item id='1'>
<level>2</level>
<title> First touch of Flash 9</title>
</item>
<item id='2'>
<level>3</level>
<title> Binding Classes</title>
</item>
<item id='3'>
<level>4</level>
<title>Document Class</title>
</item>
</tutorial>
trace (kingdaXML.item[1].level); //output:3
//例2
var kS:String = "<root><txt>this is a test</txt></root>";
var kXML:XML = new XML(kS);
trace (kXML.txt); //output:this is a test;
例1中注意到?jīng)],直接寫XML內(nèi)容在后面,想換行就換行,想tab就tab,多爽。不想AS2.0中寫string時(shí),換個(gè)行就不行了。
寫完這一句后,我們所寫出的類似于string的形式立刻就被Flash理解成了XML對(duì)象了,所以我們馬上就可以用"."操作符來訪問相應(yīng)的屬性。本例中訪問了第2個(gè)item節(jié)點(diǎn)的level值。
這么簡(jiǎn)便直觀的訪問方式是不是比 AS2.0中那千遍一律的childNodes要好得多?
不過要注意,最后可以加";"結(jié)束。但我為了XML的視覺美觀沒有加。這個(gè)沒有關(guān)系,編譯時(shí)不會(huì)考慮這一點(diǎn)。
事實(shí)上只要你喜歡,AS1.0, 2.0, 3.0中語(yǔ)句結(jié)束都可以不加";"號(hào)。但是這并不是一個(gè)好的編程習(xí)慣,更不符合嚴(yán)謹(jǐn)?shù)淖晕艺Z(yǔ)法要求。因此我建議,除了XML可以不加外,其余的都應(yīng)該加,呵呵。
例2展示了如何將一個(gè)包含了XML內(nèi)容的字符串轉(zhuǎn)換成XML對(duì)象。用的是XML的構(gòu)造函數(shù)轉(zhuǎn)換的。
AS3更有趣的是,可以使用已有的變量來直接構(gòu)造XML,帶來方便的編程特性。如下例。
相關(guān)文章
AS3 中的package(包)應(yīng)用實(shí)例代碼
初學(xué)者在學(xué)習(xí)AS3時(shí)會(huì)遇到什么樣的問題呢?只有從初學(xué)的角度來實(shí)踐,才能知道,package 這個(gè)高手們必玩的內(nèi)容,對(duì)初學(xué)者來說或許就有一些困惑。2008-08-08Google Analytics在Flash cs3下的使用教程分析
因?yàn)楣ぷ鞯脑?,最近使用到Google Analytics組件,這個(gè)組件在網(wǎng)上的資料很多,但是大部分都是詳談組件的優(yōu)勢(shì)的,具體的使用沒有很詳細(xì)的說明2009-02-02火山動(dòng)態(tài)文本滾動(dòng)條V5[AS3版]
功能說明:本版滾動(dòng)條除了繼續(xù)保持體積小(小于2K),界面容易修改,資源占用率小的優(yōu)勢(shì)外,主要有以下幾點(diǎn)改進(jìn): 1,使用AS3編寫。 2,寬高動(dòng)態(tài)指定。 3,增加滾動(dòng)條背景點(diǎn)擊事件。 4,消除了鼠標(biāo)滾輪無法同時(shí)準(zhǔn)確控制多個(gè)文本框的重大BUG。2008-03-03Actionscript 3.0中Singleton實(shí)現(xiàn) 修正篇
說明:上一篇"一個(gè)簡(jiǎn)單的Actionscript的單態(tài)模式類"的實(shí)現(xiàn)在Actionscript中報(bào)錯(cuò),具體原因會(huì)在這篇Blog中詳細(xì)說明。2009-02-02