一、建立XML對象:
var myXML = new XML();
二、引用XML文件:
myXML.load("data.xml");
三、忽略空格:
myXML.ignoreWhite = true;//默認(rèn)的為false
四、處理XML對象的函數(shù):
myXML.onLoad = function(success)
{
statements;
}
五、data.XML文件的內(nèi)容:
<data1 name="imagebear">
<data2 name="mariger">
xiaoshandong
</data2>
<data3 name="mariger3">
xiaoshandong3
</data3>
</data1>
六、返回值實例
1、myXML.childNodes[0]將返回:
<data1 name="imagebear">
<data2 name="mariger">
xiaoshandong
</data2>
<data3 name="mariger3">
xiaoshandong3
</data3>
</data1>
2、myXML.childNodes[0].nodeName將返回:
data1
3、myXML.childNodes[0].childNodes[0].name將返回:
imagebear
4、myXML.childNodes[0].childNodes[0]將返回:
<data2 name="mariger">
xiaoshandong
</data2>
5、myXML.childNodes[0].childNodes[0].nodeName將返回:
data2
6、myXML.childNodes[0].childNodes[1].attributes.name將返回:
mariger3
7、myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue將返回:
xiaoshandong
8、var myName = myXML.firstChild.firstChild;
trace(myName.nodeName);將輸出data2
myName = myName.nextSibling;
trace(myName.nodeName);將輸出data3childNodes[0]等價于firstChild
七、附:測試用的代碼,XML文件如樓上所示
var myXML = new XML();
myXML.load("data.xml");
myXML.ignoreWhite = true;
myXML.onLoad = function(success)
{
if(success)
{
//myArray = myXML.childNodes[0];
//trace(myArray.attributes.name);
//trace(myXML.childNodes[0].childNodes[1].firstChild.nodeValue);
//trace(myXML.firstChild);
//trace(myXML.childNodes[0].nodeName);
//trace(myXML.firstChild.attributes.name);
//trace(myXML.childNodes[0].childNodes[1].nodeName);
//trace(myXML.childNodes[0].childNodes[1].attributes.name);
//trace(myXML.firstChild.firstChild);
//trace(myXML.firstChild.firstChild.nodeName);
//trace(myXML.firstChild.firstChild.attributes.name);
//trace(myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue);
var myName = myXML.firstChild.firstChild;
trace(myName.nodeName);
myName = myName.nextSibling;
trace(myName.nodeName);
}
}
附:
第一講:最基本的讀取
loadVariables()
loadVariablesNum()
用法
loadVariables ("url" , target [, variables])
loadVariablesNum ("url" ,level [, variables])
區(qū)別:
太理論的東西我就不講了,大家都知道FLASH里有層級(level),也有影片剪輯(MC)那么:
·如果你想讓FLASH讀取到的數(shù)據(jù)放到某個影片剪輯中,那你就用第一個loadVariables
·如果你想讓FLASH讀取到的數(shù)據(jù)放到某個特定的級別,那你就用第二個loadVariablesNum
FLASH4就有的語法,這個函數(shù)的功能就是從外部文件(例如文本文件,或由 CGI 腳本、Active Server Page (ASP)、PHP 或 Perl 腳本生成的文本)中讀取數(shù)據(jù),并設(shè)置目標(biāo)影片剪輯中變量的值。此動作還可用于使用新值更新活動 SWF 文件中的變量。
舉例說明:
1、我們先準(zhǔn)備一個 TXT記事本。在里面寫以下內(nèi)容:
t_name=tommyheng&t_age=25歲&t_from=遼寧沈陽
解釋:上面的文本內(nèi)容我定義了3個變量 t_name t_age t_from 并且分別讓給他們賦予了一個值。而且中間用了 & 分隔開了,不明白的朋友就會問了?用&分開是啥意思?那我就來告訴你,FLASH讀取外部數(shù)據(jù),當(dāng)外部數(shù)據(jù)被程序載入的時候,FLASH會自動根據(jù) & 來 分割數(shù)據(jù) 也就是說 上面文本里的東西如果被FLASH讀取到,FLASH就自動認(rèn)識它們是3個變量。
2、我們新建一個FLASH文件,在第一個楨寫上:
loadVariables("tommyheng.txt", "_root");
或者(選一個就行,別2個都寫哦)
loadVariablesNum("tommyheng.txt", 0);
解釋:用2種方法把tommyheng.txt載入到FLASH中。
第一種方法:把文本中的數(shù)據(jù)載入到FLASH的主場景中(_root 其實就是FLASH的主場景,當(dāng)然,如果你想把數(shù)據(jù)放到FLASH中的某個MC中,你可以把它修改成,_root.mc意思就是載入到主場景中的一個叫做MC的影片剪輯)
第二種方法:把文本中的數(shù)據(jù)載入到FLASH的場景中的第0個級別
然后,在第5楨處插入一個關(guān)鍵空白楨,里面寫
trace(t_name);
trace(t_age);
trace(t_from);
stop();
解釋:trace()是FLASH里是一個信息輸出函數(shù),在制作FLASH的時候,開發(fā)者可以通過這個函數(shù),把程序返回的結(jié)果(變量)直接輸出來觀察運(yùn)行的是否正確等等,但是它只能在FLASH里使用(也就是說按CTRL+ENTER的時候)你才能看到它的功能。
把FLASH和tommyheng文本保存到同一個文件夾中。按CTRL+ENTER直接測試影片
你會發(fā)現(xiàn)會輸出一下結(jié)果:
tommyheng
25
遼寧沈陽
如果你想把這些結(jié)果顯示到文本框中,而不是輸出來看,那可以又2種方式:
第一種方式:直接分配方式
就是直接做3個動態(tài)文本框,分別點選每個文本框,在其屬性中找到變量,并分別填寫: t_name t_age t_from
第二中方式:自定分配方式
同樣建立3個動態(tài)文本框,但是不同的是,分別點選每個文本框,在其實例名稱處分別填寫隨便的3個名字 比如:a1 a2 a3
然后在這楨上寫如下程序:
a1.text = t_name
a2.text = t_age
a3.text = t_from
這樣FLASH就完成了讀取外部數(shù)據(jù)的功能!!!
特別提示:
某些朋友根據(jù)我的文件進(jìn)行測試或者學(xué)習(xí),會出現(xiàn)一個問題,那就是英文和數(shù)字顯示很正常,但是中文就顯示不正常變正了亂碼(這個是編碼問題,很高難的哦)。不要怕,我們有辦法對付它,在第一楨處寫上
System.useCodepage=true;
這句話的意思就是讓FLASH認(rèn)識中文(嘿嘿),按照理論上講就是讓FLASH使用運(yùn)行播放器的操作系統(tǒng)的傳統(tǒng)代碼頁來解釋外部文本文件。
本講結(jié)束語:
雖然我只寫了FLASH讀取文本TXT文件,但是它同樣試用其他的格式文件的讀取。如果你愿意,你可以把文件的擴(kuò)展名修改成 .dat 甚至你可以把它修改成 .tommyheng 還有,也可以是ASP了。不過如果想讀取ASP 那你必須要會ASP哦。起碼把要ASP的輸出結(jié)果也是t_name=tommyheng&t_age=25歲&t_from=遼寧沈陽
從此我們不難看出,其實FLASH讀取什么都無所謂,重要的一點,這個文件輸出來的東西要能被FLASH認(rèn)識 也就是 被 & 分開來的變量格式.