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

Flash與XML通信方法及其實現

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

摘要:本文闡述了如何利用Flash訪問XML文檔,實現XML文檔中每個元素和節點在Flash中的準確調用和顯示。

關鍵詞:Flash XML 對象 節點

引言

隨著計算機網絡技術的發展的日新月異,Flash作為網絡上的優秀軟件和語言,有著其他軟件無法比擬的優越性,而XML目前正在成為各種數據特別是文檔的首選格式,使用它,就可以以容易且一致的方式格式化和傳送數據。因此,對兩者之間交互和互通的探索及利用尤為重要。

1. Flash和可擴展標記語言 XML

Flash作為矢量化的Web交互式動畫制作工具,在Web上發布交互式動畫,目前正被大量地應用于動畫、游戲、用戶界面、Internet應用程序等等的制作之中。

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

很多人已經意識到將數據發布為XML有很多優勢,由此也推動了XML數據源的大量應用。人們正在或者已經將業務文檔、數據庫和業務間的通訊等信息源轉換為使用XML作為表示格式。

2.運用Flash訪問XML文檔

2.1訪問途徑

ActionScript中的XML對象提供了訪問XML文檔的途徑,使用點語法和XML對象的屬性可以方便地訪問XML文檔(既可以是存儲XML數據的文本文檔,也可以是XML格式的文檔)中的具體數據,并可以在Flash中將外部XML文檔中的數據顯示出來。

2.2 XML文檔實例

下面是一個XML的例子:

<teacher>

<Tnumber>201</Tnumber>

<Tname>Tommy</Tname>

<Sex>male</Sex>

<courses>

<Bcourses>Mathematics</Bcourses>

<Pcourses>CAD</Pcourses>

</courses>

<Positions>Lecturers</Positions>

</teacher >

上例的XML文檔定義了一個teacher對象,在teacher對象下面包含5組信息,分別是Tnumber、Tname、Sex、courses和Positions,在courses下面又分為Bcourses、Pcourses這2類。該數據結構如圖1所示。

2.3 XML對象和類

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

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

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

XMLNode.ignoreWhite;//處理xml文檔中的空白,設為true時,忽略空白,默認值為1

XMLNode.nodeValue;//返回XML對象的節點值

XMLNode.nodeType;//返回節點或節點文本的屬性

XMLNode.nodeName;//返回XML對象的節點名稱

2.3.1 load方法

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

myXML.load(″XMLData.txt″);

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

myXML.load(″XMLData.xml″);

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

2.3.2 onLoad事件

當從服務器上接收XML文檔時,由Flash Player調用XML的onLoad事件。調用onLoad時自動返回一個參數success,如果成功地收到XML文檔,則success參數為true;如果未收到該文檔,或從服務器上接收響應時出現錯誤,則success參數為1。

onLoad事件的使用如下:

myXML = new XML();

myXML.load(″XMLData.txt″);

myXML.onLoad = function() {

if (success == true) {

trace(″XML is successfully loaded″);

} else {

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

}};

2.3.3 childNodes屬性

XML的childNodes屬性返回指定XML對象的子級的數組,數組中的每個元素都是對表示子節點的XML對象的引用,也就是說childNodes屬性將XML對象當前級的子級節點作為一個數據返回。與數據一樣,使用方括號可以訪問數據的每一個元素。

先將外部文檔XML對象其加載到影片中的XML對象中,運行以下腳本,輸出窗口中將顯示整個XML對象:

myXML = new XML();

myXML.load(″XMLData.xml″);

myXML.onLoad = function(success) {

if (success == true) {

trace(myXML.childNodes[0]);

}};

將上面的trace語句換成如下:trace(myXML.childNodes.[0]childNodes[0]);運行腳本,但是輸出窗口中并沒有顯示。其實不是沒有顯示,而是因為<teacher>后面有一個換行,Flash不能識別換行,而是將空行也作為XML對象的一個節點了。可以運行以下腳本:trace(myXML.childNodes.childNodes[1]);輸出窗口中顯示:<Tnumber> 201 </Tnumber>。如果Flash Player不能識別空格和空行,我們就要使用ignoreWhite屬性來處理空白節點。

2.3.4 ignoreWhite屬性

ignoreWhite屬性的默認設置為1,當設置為true時,在分析過程中將放棄僅包含空白的文本節點。要解決前面遇到的問題,要將XML對象的ignoreWhite屬性設置為true。在上例中使用如下的AS將在輸出窗口中返回<Tnumber> 201 </ Tnumber>:

myXML = new XML();

myXML.load(″XMLData.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]);如果要返回節點中的文本字段,就需要使用nodeValue屬性。

2.3.5 nodeValue屬性

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

2.3.6 nodeType屬性

nodeType是一個只讀屬性,值為1表示XML元素,為3表示文本節點。

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對象的節點名稱,如果該XML對象是一個XML元素(nodeType==1),則nodeName是表示XML文件中節點的標簽名稱;如果該XML對象為文本節點(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。

結束語

使用XML表示的數據結構和文檔一目了然,在Flash中使用XML對象可以方便地解析XML的數據結構,以訪問需要的節點或數據。XML可以使用簡單的文本編輯器進行編輯,程序員可以很容易地編寫出訪問XML格式數據的程序。這也為使用Flash制作與服務器交互的影片提供了一條捷徑。

參考文獻:

[1][美]Fabio Arciniegas著.天宏工作室譯.XML開發指南.清華大學出版社,2003年1月.

[2]劉云生,盧正鼎,盧炎生著.數據庫系統概論.華中理工大學出版社,1998年4月.

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

主站蜘蛛池模板: 一区二区三区四区精品视频| 亚洲精品亚洲人成在线| 激情综合激情| 影音先锋丝袜制服| 国产精品女主播| 伊人久久福利中文字幕 | 欧美黄网在线| 欧美成人影院亚洲综合图| 国产不卡一级毛片视频| 免费A级毛片无码免费视频| 666精品国产精品亚洲| 日韩精品亚洲人旧成在线| 国产9191精品免费观看| 久久久久人妻精品一区三寸蜜桃| 中文字幕资源站| 亚洲一区第一页| 国产成人精品在线1区| 欧美成人手机在线观看网址| 亚洲 日韩 激情 无码 中出| 亚洲—日韩aV在线| 国产精品自拍露脸视频 | 亚洲国产日韩在线观看| 亚洲黄色高清| 亚洲成aⅴ人在线观看| 国产正在播放| 国产另类视频| 欧美在线综合视频| 久久精品一品道久久精品| 日韩一区二区在线电影| 久久精品丝袜| 色偷偷一区| 五月婷婷综合色| 中文字幕66页| 精品福利国产| 亚洲日韩精品综合在线一区二区| 午夜毛片免费观看视频 | 国产综合欧美| 亚洲网综合| 91麻豆国产精品91久久久| 中文字幕亚洲专区第19页| 草草线在成年免费视频2| 亚洲日本www| jizz在线观看| 亚洲福利网址| 无码丝袜人妻| 日本午夜网站| 国产主播喷水| 欧美一区二区三区香蕉视| 亚洲国产亚综合在线区| 国产女人在线| 国产成人精品2021欧美日韩 | 日本高清有码人妻| 欧美一级夜夜爽www| 色婷婷电影网| 亚洲va在线观看| 国产哺乳奶水91在线播放| 亚洲精品视频在线观看视频| 在线亚洲精品自拍| 亚洲国产欧美自拍| 亚洲黄色片免费看| 麻豆精品国产自产在线| 国产在线91在线电影| 精品丝袜美腿国产一区| 国产超碰在线观看| 中文一区二区视频| 在线亚洲小视频| 国产精品美乳| 性色在线视频精品| 日韩高清一区 | …亚洲 欧洲 另类 春色| 国产av一码二码三码无码| 无码av免费不卡在线观看| 亚洲成人一区二区三区| P尤物久久99国产综合精品| 国产天天色| 国产福利在线免费观看| 午夜一区二区三区| 国产亚洲精品无码专| 国产丝袜精品| 欧美色综合网站| 国产尤物jk自慰制服喷水| 国产精品一区二区不卡的视频|