免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
flash+xml教程(初級(jí)數(shù)據(jù)調(diào)用教程)

在FLASH中,使用XML接口獲取外部數(shù)據(jù)是最有效的方法之一.(通常還有WebSerivce接口和LoadVars方法)
下面來(lái)看一個(gè)簡(jiǎn)單的XML文檔(city.xml)
這個(gè)文檔描述的是城市地區(qū)的信息

<?xml version=”1.0″ encoding=”gb2312″?>
<root>
<city name=”上?!?code=”021″ pnum=”500000″/>
<city name=”北京” code=”010″ pnum=”600000″/>
<city name=”浙江” code=”057″ pnum=”1000000″/>
<root>
簡(jiǎn)單介紹一下XML文檔格式的書(shū)寫(xiě)規(guī)范:
第一行:
這是一個(gè)XML文檔的描述信息.其中定義了該XML文檔的一些基本屬性,包括:版本信息(version),使用的字符編碼(encoding).

第二行:
(雖然在FLASH中我們用不到節(jié)點(diǎn)的任何屬性,但是合式的XML文檔必須要求一個(gè)根節(jié)點(diǎn))
在XML文檔中,這是一個(gè)根節(jié)點(diǎn).XML規(guī)定所有標(biāo)簽必須有閉合.所以,在最后一行使用對(duì)應(yīng)的標(biāo)簽來(lái)閉合.同樣,單行的XML節(jié)點(diǎn)也需要閉合,例如:其中”/”符號(hào)就表示單行的節(jié)點(diǎn)閉合.”name”,”code”,”pnum”是節(jié)點(diǎn)的屬性,寫(xiě)法就是:屬性名=”屬性值” 這樣的名/值對(duì).至于節(jié)點(diǎn)名和屬性名都是可以自定義的,也就是說(shuō)可以任意命名.但是還是建議要盡量規(guī)范

“”節(jié)點(diǎn)是”"的子節(jié)點(diǎn),相應(yīng)的”"叫做”"的父節(jié)點(diǎn)

在這個(gè)XML文檔中有3個(gè)子節(jié)點(diǎn),我們數(shù)據(jù)就存儲(chǔ)在這3個(gè)子節(jié)點(diǎn)的屬性中,分別有:城市名稱(name),城市代碼(code),城市人口數(shù)目(pnum)
我們要做的最終目的就是在FLASH中獲取這些節(jié)點(diǎn)的屬性值

下面來(lái)看一個(gè)FLASH調(diào)用XML的實(shí)例

System.useCodepage = true;
var doc:XML = new XML();
doc.load(“city.xml”);
doc.ignoreWhite = true;
doc.onLoad = function(success){
if(success){
trace(doc.childNodes[0].childNodes[0].attributes.name);
trace(doc.childNodes[0].childNodes[1].attributes.name);
trace(doc.childNodes[0].childNodes[2].attributes.name);
}
}
分析:

System.useCodepage = true;
如果在XML文檔中使用了中文編碼,例如”gb2312″.那么在FLASH中必須啟用使用頁(yè)面編碼的指令.

var doc:XML = new XML();
建立一個(gè)XML實(shí)例.賦予”doc”這個(gè)對(duì)象.

doc.load(“city.xml”);
“l(fā)oad()”-XML對(duì)象的一個(gè)方法:加載XML數(shù)據(jù)到”doc”這個(gè)對(duì)象當(dāng)中.
提供XML數(shù)據(jù)的方式并不是限制于.xml的文件,任何符合XML書(shū)寫(xiě)格式的文檔都可以,通常,我們是使用程序來(lái)提供XML數(shù)據(jù)的,例如”http://www.51ww.com/city.aspx?country=china”

doc.ignoreWhite = true;
“ignoreWhite”-XML對(duì)象的一個(gè)屬性:指定XML文檔忽略空白,因?yàn)樵赬ML中一個(gè)換行在FLASH中會(huì)被視為一個(gè)節(jié)點(diǎn)

doc.onLoad = function(success){}
“onLoad”-XML對(duì)象的一個(gè)方法.將會(huì)返回一個(gè)布爾值”true或false”.用來(lái)判斷XML是否被成功加載.如果加載成功則會(huì)返回”true”,反之則返回”false”
此處為該方法使用了一個(gè)函數(shù),其參數(shù)”success”用來(lái)貯存上述的布爾值

if(success){}
一個(gè)判斷語(yǔ)句:如果加載成功(即success的值為”true”),則觸發(fā)括號(hào)內(nèi)的動(dòng)作

trace(doc.childNodes[0].childNodes[0].attributes.name);
輸出doc(此時(shí)”city.xml”中的數(shù)據(jù)已經(jīng)包含到doc這個(gè)XML對(duì)象當(dāng)中)這個(gè)XML對(duì)象的第一個(gè)節(jié)點(diǎn)下的第一個(gè)子節(jié)點(diǎn)的”name”屬性值
childNodes-XML對(duì)象的一個(gè)屬性,它的值的類型是數(shù)組型.XML的一個(gè)節(jié)點(diǎn)可以在FLASH中通過(guò)這個(gè)屬性來(lái)表示其包含的數(shù)據(jù).
由于FLASH中數(shù)組的長(zhǎng)度計(jì)算是由”0″開(kāi)始,所以我們XML文檔中的第一個(gè)節(jié)點(diǎn)就存儲(chǔ)在數(shù)組的”0″位置.而不是”1″
所以,我們?nèi)〕鯴ML文檔的第一個(gè)節(jié)點(diǎn)-”",就應(yīng)該表示成這樣”childNodes[0]”
同樣,我們?nèi)〕鯴ML對(duì)象根節(jié)點(diǎn)(“”)下的第一個(gè)子節(jié)點(diǎn)(“”),就表示成doc.childNodes[0].childNodes[0]
相應(yīng)的,取出第二個(gè)子節(jié)點(diǎn):doc.childNodes[0].childNodes[1]
第三個(gè)子節(jié)點(diǎn):doc.childNodes[0].childNodes[2]
(這一步中,需要涉及到FLASH中數(shù)組對(duì)象的使用原理)

在FLASH與XML的數(shù)據(jù)交互中,可能數(shù)據(jù)的表現(xiàn)是最難的一步.
針對(duì)上面數(shù)據(jù)表現(xiàn)方式,我們可以充分利用數(shù)組的便利性來(lái)做
假如已經(jīng)獲得一個(gè)XML對(duì)象”doc”

首先,我們將這個(gè)XML中使用到的數(shù)據(jù)轉(zhuǎn)換為一個(gè)數(shù)組對(duì)象來(lái)表示
var myList:Array = doc.childNodes[0].childNodes;//直接將XML文檔根節(jié)點(diǎn)下的的所有子節(jié)點(diǎn)放到一個(gè)數(shù)組中
trace(myList[0].attributes.name+”,”+myList[0].attributes.code+”,”+myList[0].attributes.pnum);//輸出第一個(gè)”city”節(jié)點(diǎn)所有的屬性值
trace(myList[1].attributes.name+”,”+myList[1].attributes.code+”,”+myList[1].attributes.pnum);//輸出第二個(gè)”city”節(jié)點(diǎn)所有的屬性值
trace(myList[2].attributes.name+”,”+myList[2].attributes.code+”,”+myList[2].attributes.pnum);//輸出第三個(gè)”city”節(jié)點(diǎn)所有的屬性值

輸出結(jié)果:

上海,021,500000
北京,010,600000
浙江,057,1000000

System.useCodepage = true;
var doc:XML = new XML();
doc.load(“city.xml”);
doc.ignoreWhite = true;
doc.onLoad = function(success){
if(success){
var myList:Array = doc.childNodes[0].childNodes;
trace(myList[0].attributes.name+”,”+myList[0].attributes.code+”,”+myList[0].attributes.pnum);
trace(myList[1].attributes.name+”,”+myList[1].attributes.code+”,”+myList[1].attributes.pnum);
trace(myList[2].attributes.name+”,”+myList[2].attributes.code+”,”+myList[2].attributes.pnum);
}
}

為了在FLASH中其他的位置都能夠訪問(wèn)到我們所需要的XML數(shù)據(jù),我們可以將myList數(shù)組對(duì)象放置到上下文的任意位置
例如:

System.useCodepage = true;
var doc:XML = new XML();
var myList:Array = new Array();//預(yù)先建立一個(gè)數(shù)組對(duì)象用來(lái)放置XML節(jié)點(diǎn)數(shù)據(jù),以便FLASH其他位置的代碼都能夠訪問(wèn)
doc.load(“city.xml”);
doc.ignoreWhite = true;
doc.onLoad = function(success){
if(success){
myList = doc.childNodes[0].childNodes;//當(dāng)XML加載成功后對(duì)上文的myList數(shù)組對(duì)象進(jìn)行賦值.
}
}

//使用一個(gè)按鈕動(dòng)作來(lái)獲取數(shù)組對(duì)象中的一個(gè)CITY節(jié)點(diǎn)信息
btName.onPress = function(){
trace(_root.myList[0].attributes.name+”,”+_root.myList[0].attributes.code+”,”+_root.myList[0].attributes.pnum);
}
這樣的寫(xiě)法當(dāng)然還不滿足我們一些復(fù)雜的需求,而且代碼過(guò)冗長(zhǎng).
使用函數(shù)來(lái)返回我們需要的信息,應(yīng)該是最正確的做法,我們來(lái)實(shí)現(xiàn)它
按下按鈕時(shí),向函數(shù)遞交一個(gè)城市代碼,返回城市名和人口信息

System.useCodepage = true;
var doc:XML = new XML();
var myList:Array = new Array();//預(yù)先建立一個(gè)數(shù)組對(duì)象用來(lái)放置XML節(jié)點(diǎn)數(shù)據(jù),以便FLASH其他位置的代碼都能夠訪問(wèn)
doc.load(“city.xml”);
doc.ignoreWhite = true;
doc.onLoad = function(success){
if(success){
myList = doc.childNodes[0].childNodes;//當(dāng)XML加載成功后對(duì)上文的myList數(shù)組對(duì)象進(jìn)行賦值.
}
}

//函數(shù)開(kāi)始
function getCityInfo(code){//構(gòu)建一個(gè)函數(shù)的寫(xiě)法是:function 函數(shù)名(參數(shù)){//腳本代碼}
var cityName:String;//建立一個(gè)字符竄變量來(lái)存儲(chǔ)城市名
var pepCount:String;//建立一個(gè)字符竄變量來(lái)存儲(chǔ)居民數(shù)量
for(var i=0;i<myList.length;i++){
if(code eq myList[i].attributes.code){
cityName = myList[i].attributes.name;
pepCount = myList[i].attributes.pnum;
}
}
return “城市:”+cityName+”,人口:”+pepCount //返回一段文字表達(dá)信息
}

//函數(shù)結(jié)束

btName.onPress = function(){
trace(getCityInfo(“010″));//輸出函數(shù)的返回結(jié)果,(在函數(shù)的參數(shù)中提交城市代碼-”010″)
}

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
xml與datatable互轉(zhuǎn)類
VBA--XML文件的讀取與輸出
flash訪問(wèn)xml
(2)vb 讀取 XML 文件 內(nèi)容
在WinForm中使用Web Services 來(lái)實(shí)現(xiàn)軟件自動(dòng)升級(jí)( Auto Updat...
讀寫(xiě)xml所有節(jié)點(diǎn)個(gè)人小結(jié)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服