- 相關(guān)推薦
關(guān)于XML在FLASH中的應用說(shuō)明
點(diǎn)擊這里瀏覽Flash教程欄目關(guān)于XML在FLASH中的應用,以前寫(xiě)過(guò)幾篇。也收集了幾篇來(lái)自網(wǎng)絡(luò )的。不過(guò),都是一些非常簡(jiǎn)單而常用的。在這里,我把XML的其他相關(guān)說(shuō)明總結一下。有不足之處,希望大家能相互補充。只為了一個(gè)共同的目的:共同提高。
一、書(shū)寫(xiě)標準的XML需要注意以下幾點(diǎn):
一個(gè)標準的XML文檔必須要在第一行以""開(kāi)頭,以及一個(gè)""結尾,其中開(kāi)頭部分需申明XML的版本,如:version="1.0",也應包含一個(gè)關(guān)于編碼的聲明:“encoding="utf-8"”; XML要求所有的標簽必須在文檔結束之前被閉合,如果標簽中包含內容,則必須寫(xiě)成“<標簽名>內容"的格式,如果內容為空,則應寫(xiě)在的格式;即,后面必須有這種格式的。 每個(gè)XML都有有一個(gè)根元素,也叫根節點(diǎn)。 節點(diǎn)有節點(diǎn)值和屬性。 XML的節點(diǎn)值如果出現與XML標簽關(guān)鍵字一樣的字符,XML將會(huì )無(wú)法解析文檔,比如,某個(gè)節點(diǎn)值如果是一個(gè)大于或者小于號,就會(huì )讓解釋器產(chǎn)生一個(gè)錯誤。
二、在FLASH中創(chuàng )建一個(gè)簡(jiǎn)單的實(shí)例:
//創(chuàng )建一個(gè)新的XML類(lèi)實(shí)例
var my_XML:XML=new XML();
//創(chuàng )建一個(gè)TextArea組件,用于顯示此XML內容
var my_TextArea:mx.controls.TextArea;
//加載外部XML文件
my_XML.load("my_xml.xml");
//為load函數定義onLoad函數---此處是必須的。只有當加載成功后,才能控制XML。否則不能。
my_XML.onLoad=function(ok:Boolean){
if(ok){
my_TextArea.text =this;
}else{
my_TextArea.text ="加載失敗..."
}
}
//忽略空白:
my_XML.ignoreWhite=true;
三、關(guān)于FLASH解析XML詳解,說(shuō)白了,也就是對節點(diǎn)的讀取。
首先,來(lái)看看這幅圖,稍微加點(diǎn)印象。
下面,我將對XML文件的解析方面做詳細的介紹。
為了便于講解,在此,我舉一個(gè)簡(jiǎn)單的例子。
1、新建一個(gè)記事本文件,在里面輸入如下內容:
<購買(mǎi)物品>
<襯衣>1件
<褲子>2件
<鞋子>3雙
<總花費金額>
<打的費>50元
<貨物金>1000元
然后保存為"goods.xml",注意,在編碼處,要選擇"Unicode"。
2、下面,就對里面的各項值進(jìn)行解讀。
讀取整個(gè)XML文件的方法:
在剛才的XML的同級目錄下新建一FLA文件,然后在場(chǎng)景中放置一TextArea組件。并賦實(shí)例名“my_TextArea”,
然后在第一幀中添加如下代碼:
var my_XML:XML=new XML();
System.useCodepage=true;
var my_TextArea:mx.controls.TextArea;
my_XML.load("goods.xml")
my_XML.onLoad=function(ok:Boolean){
if(ok){
my_TextArea.text =this;
}else{
my_TextArea.text ="加載失敗"
}
}
按CTRL ENTER測試,即可以看效果。
首先,我們來(lái)看看如何對XML中的節點(diǎn)名稱(chēng)或者節點(diǎn)屬性進(jìn)行讀取呢?
比如,我們要讀取如例子中的"購買(mǎi)物品"這幾個(gè)字符,該如何操作呢?
我們使用如下語(yǔ)句:
this.firstChild.nodeName;
如果要讀取"襯衣":
this.firstChild.childNodes[0].nodeName;
如果要讀取"1條":
this.firstChild.childNodes[1].childNodes[0].nodeValue;
如果要讀取褲子的品牌:
this.firstChild.childNodes[1].attributes.品牌;
將XML讀取進(jìn)LIST組件中:
System.useCodepage = true;
var my_TextArea:mx.controls.TextArea;
var my_List:mx.controls.List;
var my_XML:XML = new XML();
my_XML.ignoreWhite = true;
my_XML.load("shopping.xml");
my_XML.onLoad = function(ok:Boolean) {
if (ok) {
var childnodes = this.firstChild.childNodes;
for (i=0; i<childnodes.length; i ) {
my_List.addItem({label:childnodes.nodeName});
}
} else {
my_TextArea.text = "加載失敗";
}
};
第一個(gè)節點(diǎn):firstChild:
用法:this.firstChild;
最后一個(gè)節點(diǎn):lastChild
用法:this.firstChild;
兄弟節點(diǎn):nextSibling:
用法:this.firstChild.childNodes[0].nextSibling;
另一個(gè)兄弟節點(diǎn):previousSibling:
用法:this.firstChild.childNodes[0].previousSibling;
區別:nextSibling是朝后,而previousSibling是當前之前;
父類(lèi)節點(diǎn):parentNode:
用法:this.firstChild.parentNode;
【XML在FLASH中的應用說(shuō)明】相關(guān)文章:
Flash在網(wǎng)頁(yè)設計中的應用方式05-11
關(guān)于XML技術(shù)在數據交換中的應用09-28
關(guān)于Flash動(dòng)畫(huà)設計在網(wǎng)站中的應用09-02
XML語(yǔ)言在網(wǎng)頁(yè)中有哪些應用07-25
Flash動(dòng)畫(huà)設計中的色彩文化介紹09-19
Flash動(dòng)畫(huà)基礎08-16
XML認證元素類(lèi)型聲明05-28
刺繡在服裝中的應用05-18
制作flash課件的方法10-16