AS3與XML 的結合

 [1b]ActionScript 3.0系列教程(4):爽快使用XML[/1b]
爲什麼放棄AS2.0選擇AS3.0?如果只允許我說三個理由。那麼AS3.0對XML的近乎完美的支持絕對是其中一個。
[1b]簡單說說AS3.0中對於XML支持的不同吧:[/1b]
.AS2.0對XML的支持勉勉強強,將就着可以用。而AS3.0中對XML的支持是全方位的,極其強大和靈活的。
AS2.0對XML的支持不是內建的(build-in),也並非基於ECMAScript for XML(E4X)標準。而AS3.0中對XML的支持符合E4X標準,它的設計有三個優點:
1. 簡易。包括操作和可讀性。你會發現AS3.0中對於XML的操作猶如對一個普通Object對象一樣淺顯易懂。語句非常淺白流暢。
2. 連續性。其各個功能的設計和AS3.0其餘的部分思想一致,易於理解。
3. 熟悉。操作符和操作邏輯對我們來說都相當熟悉易用。
在AS2.0時代,爲了解決這部分的問題
效率。
效率包括兩方面,開發效率,和代碼執行效率。開發效率的論述見上。AS3.0對於XML的執行效率遠遠高過沒有內建XML支持的AS2.0。
[1b]XML的輸入[/1b]
在AS2.0時代,在代碼行中輸入XML代碼是一種痛苦。如果不是從文件中讀取,那麼我們就要忍受一長串擠在一塊兒的字符串。
而在AS3.0中,太簡單了。直接按照XML的內容輸即可,想換行就換行,想Tab就Tab,就一個字,爽。
新建一個fla,選中第一幀,F9打開動作面板,輸入如下代碼:
  //http://www.kingda.org
  //例1
  var kingdaXML:XML = 
  
  
  2
  
  
  
  3
  
  
  
  4
  
  
  
  trace (kingdaXML.item[1].level);  //output:3
  //例2
  var kS:String = "this is a test";
  var kXML:XML = new XML(kS);
  trace (kXML.txt); //output:this is  a test;
  
例1中注意到沒,直接寫XML內容在後面,想換行就換行,想tab就tab,多爽。不想AS2.0中寫string時,換個行就不行了。
寫完這一句後,我們所寫出的類似於string的形式立刻就被Flash理解成了XML對象了,所以我們馬上就可以用"."操作符來訪問相應的屬性。本例中訪問了第2個item節點的level值。
這麼簡便直觀的訪問方式是不是比 AS2.0中那千遍一律的childNodes要好得多?
不過要注意,最後可以加";"結束。但我爲了XML的視覺美觀沒有加。這個沒有關係,編譯時不會考慮這一點。
[1b]事實上只要你喜歡,AS1.0, 2.0, 3.0中語句結束都可以不加";"號。但是這並不是一個好的編程習慣,更不符合嚴謹的自我語法要求。因此我建議,除了XML可以不加外,其餘的都應該加,呵呵。[/1b]
例2展示瞭如何將一個包含了XML內容的字符串轉換成XML對象。用的是XML的構造函數轉換的。
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 = 
  
  {subNodeContent}
  ;
  trace (extXML.toString());
  /*output: 
[1b]要點就是要把變量用"{}"括起來,並且設置屬性時不要再加引號了。[/1b]
[1b]XML的外部讀取[/1b]
包括讀取外部xml文件,和通過URL讀取xml。AS3.0中不像2.0那樣集成了一個load()。
AS3.0在架構上就設計了所有與外部打交道的都由URLrequest對象來進行,數據都由URLloader對象來接受。這個我們會在下一部分教程詳細講解。這一次只要知道這樣的架構設計是深思熟慮,且簡潔優美的即可。
[1b]XML的操作[/1b]
本文轉自:http://www.5uflash.com/flashjiaocheng/Flash-as3-jiaocheng/1784.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章