ActionScript 3.0系列教程(3):Document Class特色為我們帶來了什么?
ActionScript 3.0系列教程(4):爽快使用XML
為什么放棄AS2.0選擇AS3.0?如果只允許我說三個理由。那么AS3.0對XML的近乎完美的支持絕對是其中一個。
簡單說說AS3.0中對于XML支持的不同吧:
.AS2.0對XML的支持勉勉強強,將就著可以用。而AS3.0中對XML的支持是全方位的,極其強大和靈活的。
AS2.0對XML的支持不是內建的(build-in),也并非基于ECMAScript for XML(E4X)標準。而AS3.0中對XML的支持符合E4X標準,它的設計有三個優(yōu)點: 1. 簡易。包括操作和可讀性。你會發(fā)現(xiàn)AS3.0中對于XML的操作猶如對一個普通Object對象一樣淺顯易懂。語句非常淺白流暢。 2. 連續(xù)性。其各個功能的設計和AS3.0其余的部分思想一致,易于理解。 3. 熟悉。操作符和操作邏輯對我們來說都相當熟悉易用。 在AS2.0時代,為了解決這部分的問題
效率。 效率包括兩方面,開發(fā)效率,和代碼執(zhí)行效率。開發(fā)效率的論述見上。AS3.0對于XML的執(zhí)行效率遠遠高過沒有內建XML支持的AS2.0。
XML的輸入
在AS2.0時代,在代碼行中輸入XML代碼是一種痛苦。如果不是從文件中讀取,那么我們就要忍受一長串擠在一塊兒的字符串。
而在AS3.0中,太簡單了。直接按照XML的內容輸即可,想換行就換行,想Tab就Tab,就一個字,爽。
新建一個fla,選中第一幀,F(xiàn)9打開動作面板,輸入如下代碼:
//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內容在后面,想換行就換行,想tab就tab,多爽。不想AS2.0中寫string時,換個行就不行了。
寫完這一句后,我們所寫出的類似于string的形式立刻就被Flash理解成了XML對象了,所以我們馬上就可以用"."操作符來訪問相應的屬性。本例中訪問了第2個item節(jié)點的level值。
這么簡便直觀的訪問方式是不是比 AS2.0中那千遍一律的childNodes要好得多?
不過要注意,最后可以加";"結束。但我為了XML的視覺美觀沒有加。這個沒有關系,編譯時不會考慮這一點。
事實上只要你喜歡,AS1.0, 2.0, 3.0中語句結束都可以不加";"號。但是這并不是一個好的編程習慣,更不符合嚴謹?shù)淖晕艺Z法要求。因此我建議,除了XML可以不加外,其余的都應該加,呵呵。
例2展示了如何將一個包含了XML內容的字符串轉換成XML對象。用的是XML的構造函數(shù)轉換的。
AS3更有趣的是,可以使用已有的變量來直接構造XML,帶來方便的編程特性。如下例。
var rootNodeName :String = "site"; var subNodeName :String = "orgin"; var subNodeContent :String = "Kingda's Blog"; var attributeName :String = "url" var attributeValue :String = "http://www.kingda.org"; var extXML:XML = <{rootNodeName} {attributeName}={attributeValue}> <{subNodeName}>{subNodeContent}</{subNodeName}> </{rootNodeName}>; trace (extXML.toString()); /*output: <site url="http://www.kingda.org"> <orgin>Kingda's Blog</orgin> </site> */
要點就是要把變量用"{}"括起來,并且設置屬性時不要再加引號了。
出處:藍色理想
責任編輯:moby
上一頁 下一頁 爽快使用XML [2]
◎進入論壇Flash專欄版塊參加討論
|