999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Flash與XML通信方法及其實(shí)現(xiàn)

2008-01-01 00:00:00金斌英夏安螺
考試周刊 2008年1期

摘要:本文闡述了如何利用Flash訪問(wèn)XML文檔,實(shí)現(xiàn)XML文檔中每個(gè)元素和節(jié)點(diǎn)在Flash中的準(zhǔn)確調(diào)用和顯示。

關(guān)鍵詞:Flash XML 對(duì)象 節(jié)點(diǎn)

引言

隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展的日新月異,F(xiàn)lash作為網(wǎng)絡(luò)上的優(yōu)秀軟件和語(yǔ)言,有著其他軟件無(wú)法比擬的優(yōu)越性,而XML目前正在成為各種數(shù)據(jù)特別是文檔的首選格式,使用它,就可以以容易且一致的方式格式化和傳送數(shù)據(jù)。因此,對(duì)兩者之間交互和互通的探索及利用尤為重要。

1. Flash和可擴(kuò)展標(biāo)記語(yǔ)言 XML

Flash作為矢量化的Web交互式動(dòng)畫(huà)制作工具,在Web上發(fā)布交互式動(dòng)畫(huà),目前正被大量地應(yīng)用于動(dòng)畫(huà)、游戲、用戶(hù)界面、Internet應(yīng)用程序等等的制作之中。

可擴(kuò)展標(biāo)記語(yǔ)言(XML,Extensible Markup Language)是一門(mén)新興的面向Internet應(yīng)用的標(biāo)記語(yǔ)言。XML經(jīng)常被運(yùn)用在Web服務(wù)中,比如網(wǎng)站的建設(shè)中。另外,它可以用于制作應(yīng)用程序之間的數(shù)據(jù)交換以及配置系統(tǒng)等等,使用XML配置文件的系統(tǒng)應(yīng)用程序能夠方便地處理所需數(shù)據(jù),不用像其他應(yīng)用那樣要經(jīng)過(guò)重新編譯才能修改和維護(hù)系統(tǒng)。

很多人已經(jīng)意識(shí)到將數(shù)據(jù)發(fā)布為XML有很多優(yōu)勢(shì),由此也推動(dòng)了XML數(shù)據(jù)源的大量應(yīng)用。人們正在或者已經(jīng)將業(yè)務(wù)文檔、數(shù)據(jù)庫(kù)和業(yè)務(wù)間的通訊等信息源轉(zhuǎn)換為使用XML作為表示格式。

2.運(yùn)用Flash訪問(wèn)XML文檔

2.1訪問(wèn)途徑

ActionScript中的XML對(duì)象提供了訪問(wèn)XML文檔的途徑,使用點(diǎn)語(yǔ)法和XML對(duì)象的屬性可以方便地訪問(wèn)XML文檔(既可以是存儲(chǔ)XML數(shù)據(jù)的文本文檔,也可以是XML格式的文檔)中的具體數(shù)據(jù),并可以在Flash中將外部XML文檔中的數(shù)據(jù)顯示出來(lái)。

2.2 XML文檔實(shí)例

下面是一個(gè)XML的例子:

<teacher>

<Tnumber>201</Tnumber>

<Tname>Tommy</Tname>

<Sex>male</Sex>

<courses>

<Bcourses>Mathematics</Bcourses>

<Pcourses>CAD</Pcourses>

</courses>

<Positions>Lecturers</Positions>

</teacher >

上例的XML文檔定義了一個(gè)teacher對(duì)象,在teacher對(duì)象下面包含5組信息,分別是Tnumber、Tname、Sex、courses和Positions,在courses下面又分為Bcourses、Pcourses這2類(lèi)。該數(shù)據(jù)結(jié)構(gòu)如圖1所示。

2.3 XML對(duì)象和類(lèi)

XML對(duì)象提供了眾多的屬性、方法和事件,在Flash中調(diào)用XML文檔需要用到XML類(lèi)和XMLNode類(lèi)中的一些方法和屬性。下面我把用到的方法和屬性列出來(lái)并在下文中予以詳細(xì)解釋:

XML.load(″xml文檔的地址″);//加載指定的xml文檔

XML.onLoad=function(success:Boolean){};//成功加載了xml文檔時(shí)調(diào)用 XML.childNodes;//返回指定xml文檔對(duì)象的子級(jí)的數(shù)組

XMLNode.ignoreWhite;//處理xml文檔中的空白,設(shè)為true時(shí),忽略空白,默認(rèn)值為1

XMLNode.nodeValue;//返回XML對(duì)象的節(jié)點(diǎn)值

XMLNode.nodeType;//返回節(jié)點(diǎn)或節(jié)點(diǎn)文本的屬性

XMLNode.nodeName;//返回XML對(duì)象的節(jié)點(diǎn)名稱(chēng)

2.3.1 load方法

XML的load方法用于從指定的URL中加載XML文檔,并使用下載的XML數(shù)據(jù)替換指定XML對(duì)象的內(nèi)容。使用load方法加載的XML文檔須與Flash影片處于相同的文件夾中。如下為AS創(chuàng)建并從外部文本文檔中加載XML對(duì)象:myXML=new XML();

myXML.load(″X(qián)MLData.txt″);

如下所示的AS創(chuàng)建并從外部XML文檔中加載XML對(duì)象:myXML=new XML();

myXML.load(″X(qián)MLData.xml″);

使用XML.load命令后并不能立即將外部文檔中的數(shù)據(jù)加載到影片中,如果直接引用文檔中的數(shù)據(jù)可能會(huì)得不到需要的結(jié)果。要判斷XML文檔是否已經(jīng)加載到影片中,可以使用onLoad事件。

2.3.2 onLoad事件

當(dāng)從服務(wù)器上接收XML文檔時(shí),由Flash Player調(diào)用XML的onLoad事件。調(diào)用onLoad時(shí)自動(dòng)返回一個(gè)參數(shù)success,如果成功地收到XML文檔,則success參數(shù)為true;如果未收到該文檔,或從服務(wù)器上接收響應(yīng)時(shí)出現(xiàn)錯(cuò)誤,則success參數(shù)為1。

onLoad事件的使用如下:

myXML = new XML();

myXML.load(″X(qián)MLData.txt″);

myXML.onLoad = function() {

if (success == true) {

trace(″X(qián)ML is successfully loaded″);

} else {

trace(″Something is wrong with the XML document″);

}};

2.3.3 childNodes屬性

XML的childNodes屬性返回指定XML對(duì)象的子級(jí)的數(shù)組,數(shù)組中的每個(gè)元素都是對(duì)表示子節(jié)點(diǎn)的XML對(duì)象的引用,也就是說(shuō)childNodes屬性將XML對(duì)象當(dāng)前級(jí)的子級(jí)節(jié)點(diǎn)作為一個(gè)數(shù)據(jù)返回。與數(shù)據(jù)一樣,使用方括號(hào)可以訪問(wèn)數(shù)據(jù)的每一個(gè)元素。

先將外部文檔XML對(duì)象其加載到影片中的XML對(duì)象中,運(yùn)行以下腳本,輸出窗口中將顯示整個(gè)XML對(duì)象:

myXML = new XML();

myXML.load(″X(qián)MLData.xml″);

myXML.onLoad = function(success) {

if (success == true) {

trace(myXML.childNodes[0]);

}};

將上面的trace語(yǔ)句換成如下:trace(myXML.childNodes.[0]childNodes[0]);運(yùn)行腳本,但是輸出窗口中并沒(méi)有顯示。其實(shí)不是沒(méi)有顯示,而是因?yàn)椋紅eacher>后面有一個(gè)換行,F(xiàn)lash不能識(shí)別換行,而是將空行也作為XML對(duì)象的一個(gè)節(jié)點(diǎn)了。可以運(yùn)行以下腳本:trace(myXML.childNodes.childNodes[1]);輸出窗口中顯示:<Tnumber> 201 </Tnumber>。如果Flash Player不能識(shí)別空格和空行,我們就要使用ignoreWhite屬性來(lái)處理空白節(jié)點(diǎn)。

2.3.4 ignoreWhite屬性

ignoreWhite屬性的默認(rèn)設(shè)置為1,當(dāng)設(shè)置為true時(shí),在分析過(guò)程中將放棄僅包含空白的文本節(jié)點(diǎn)。要解決前面遇到的問(wèn)題,要將XML對(duì)象的ignoreWhite屬性設(shè)置為true。在上例中使用如下的AS將在輸出窗口中返回<Tnumber> 201 </ Tnumber>:

myXML = new XML();

myXML.load(″X(qián)MLData.xml″);

myXML.ignoreWhite = true;

myXML.onLoad = function(success) {

if (success == true) {

trace(myXML.childNodes.childNodes[0]);

}};

如果要返回 CAD ,就需要如下的AS:trace(myXML.childNodes[0].childNodes[3].childNodes[1]);如果要返回節(jié)點(diǎn)中的文本字段,就需要使用nodeValue屬性。

2.3.5 nodeValue屬性

nodeValue屬性返回XML對(duì)象的節(jié)點(diǎn)值。如果XML對(duì)象為文本節(jié)點(diǎn),則nodeValue為該節(jié)點(diǎn)的文本;如果該XML對(duì)象是XML元素,則其nodeValue為1。要得到文本CAD,可以使用如下的AS:trace(myXML.childNodes[0].childNodes[3].childNodes[1].childNodes[0].nodeValue)。

2.3.6 nodeType屬性

nodeType是一個(gè)只讀屬性,值為1表示XML元素,為3表示文本節(jié)點(diǎn)。

trace(myXML.childNodes[0].childNodes[3].childNodes[1].nodeType);//返回1;

trace(myXML.childNodes[0].childNodes[3].childNodes[1].childNodes[0].nodeType);

//返回3。

2.3.7 nodeName屬性

nodeName屬性返回XML對(duì)象的節(jié)點(diǎn)名稱(chēng),如果該XML對(duì)象是一個(gè)XML元素(nodeType==1),則nodeName是表示XML文件中節(jié)點(diǎn)的標(biāo)簽名稱(chēng);如果該XML對(duì)象為文本節(jié)點(diǎn)(nodeType==3),則nodeName為1。

trace(myXML.childNodes[0].childNodes[3].childNodes[1].nodeName);

//返回Pcourses;

trace(myXML.childNodes[0].childNodes[3].childNodes[1].childNodes[0].nodeName);

//返回1。

結(jié)束語(yǔ)

使用XML表示的數(shù)據(jù)結(jié)構(gòu)和文檔一目了然,在Flash中使用XML對(duì)象可以方便地解析XML的數(shù)據(jù)結(jié)構(gòu),以訪問(wèn)需要的節(jié)點(diǎn)或數(shù)據(jù)。XML可以使用簡(jiǎn)單的文本編輯器進(jìn)行編輯,程序員可以很容易地編寫(xiě)出訪問(wèn)XML格式數(shù)據(jù)的程序。這也為使用Flash制作與服務(wù)器交互的影片提供了一條捷徑。

參考文獻(xiàn):

[1][美]Fabio Arciniegas著.天宏工作室譯.XML開(kāi)發(fā)指南.清華大學(xué)出版社,2003年1月.

[2]劉云生,盧正鼎,盧炎生著.數(shù)據(jù)庫(kù)系統(tǒng)概論.華中理工大學(xué)出版社,1998年4月.

[3]要步軒,梁子等編著.Flash MX完全使用教程.電子工業(yè)出版社,2003年1月.

主站蜘蛛池模板: 国产亚洲精品无码专| a毛片免费观看| 国产一区二区免费播放| 成人福利视频网| 一级不卡毛片| 国产人免费人成免费视频| 97在线观看视频免费| 老司机午夜精品视频你懂的| 黄色网在线| 欧洲日本亚洲中文字幕| 激情五月婷婷综合网| 国产美女精品一区二区| 亚洲色图欧美一区| 国产精品专区第一页在线观看| 久久国语对白| 亚洲经典在线中文字幕 | 成人国产免费| 波多野结衣一区二区三视频| 在线看片中文字幕| 日韩乱码免费一区二区三区| 国产精品三级专区| 亚洲一道AV无码午夜福利| 欧美久久网| 四虎综合网| 亚洲色图综合在线| 国产性猛交XXXX免费看| 亚洲综合18p| 亚洲性一区| 99久久精品免费视频| 99在线观看精品视频| 国产精品女熟高潮视频| 青青国产在线| 日本精品影院| 亚洲一区二区三区在线视频| 丁香婷婷激情综合激情| 在线亚洲小视频| 国产午夜无码专区喷水| 国产青榴视频| 精品一区二区三区水蜜桃| 97人妻精品专区久久久久| 极品国产在线| 国产午夜一级淫片| 久久网综合| 美女被躁出白浆视频播放| 亚洲精品无码日韩国产不卡| 又污又黄又无遮挡网站| 中文字幕永久在线看| 呦女亚洲一区精品| 91在线播放国产| 亚洲欧洲日产无码AV| 亚洲AV无码久久天堂| 国产精品开放后亚洲| 亚洲最大福利视频网| 日本手机在线视频| 久久香蕉国产线| 激情成人综合网| 在线亚洲精品福利网址导航| a毛片在线播放| 欧美啪啪一区| 国产特一级毛片| 国产丝袜无码精品| 欧美日韩在线第一页| 天堂中文在线资源| 3344在线观看无码| 91福利免费| 亚洲精品视频免费看| 国产精品美乳| 国产91在线免费视频| 亚洲专区一区二区在线观看| 岛国精品一区免费视频在线观看| 亚洲成人黄色在线| 欧美精品v| 精品少妇人妻av无码久久| 精品欧美视频| 久久婷婷色综合老司机| 日本不卡视频在线| 真人免费一级毛片一区二区| 亚洲伊人天堂| 欧美日本在线一区二区三区| 有专无码视频| 在线中文字幕网| 亚洲欧美日韩中文字幕在线一区|