亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

        關鍵詞:Flash XML 對象 節(jié)點

        引言

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

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

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

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

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

        2.運用Flash訪問XML文檔

        2.1訪問途徑

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

        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類。該數(shù)據(jù)結(jié)構(gòu)如圖1所示。

        2.3 XML對象和類

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

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

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

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

        XMLNode.nodeValue;//返回XML對象的節(jié)點值

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

        XMLNode.nodeName;//返回XML對象的節(jié)點名稱

        2.3.1 load方法

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

        myXML.load(″XMLData.txt″);

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

        myXML.load(″XMLData.xml″);

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

        2.3.2 onLoad事件

        當從服務器上接收XML文檔時,由Flash Player調(diào)用XML的onLoad事件。調(diào)用onLoad時自動返回一個參數(shù)success,如果成功地收到XML文檔,則success參數(shù)為true;如果未收到該文檔,或從服務器上接收響應時出現(xiàn)錯誤,則success參數(shù)為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對象的子級的數(shù)組,數(shù)組中的每個元素都是對表示子節(jié)點的XML對象的引用,也就是說childNodes屬性將XML對象當前級的子級節(jié)點作為一個數(shù)據(jù)返回。與數(shù)據(jù)一樣,使用方括號可以訪問數(shù)據(jù)的每一個元素。

        先將外部文檔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>后面有一個換行,F(xiàn)lash不能識別換行,而是將空行也作為XML對象的一個節(jié)點了??梢赃\行以下腳本:trace(myXML.childNodes.childNodes[1]);輸出窗口中顯示:<Tnumber> 201 </Tnumber>。如果Flash Player不能識別空格和空行,我們就要使用ignoreWhite屬性來處理空白節(jié)點。

        2.3.4 ignoreWhite屬性

        ignoreWhite屬性的默認設置為1,當設置為true時,在分析過程中將放棄僅包含空白的文本節(jié)點。要解決前面遇到的問題,要將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]);如果要返回節(jié)點中的文本字段,就需要使用nodeValue屬性。

        2.3.5 nodeValue屬性

        nodeValue屬性返回XML對象的節(jié)點值。如果XML對象為文本節(jié)點,則nodeValue為該節(jié)點的文本;如果該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表示文本節(jié)點。

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

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

        參考文獻:

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

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

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

        欧美丰满熟妇aaaaa片| 手机在线看片国产人妻| 成人短篇在线视频夫妻刺激自拍 | 少妇高潮喷水久久久影院| 亚洲无码毛片免费视频在线观看| 一区二区午夜视频在线观看| 国产a∨天天免费观看美女| 国产性生交xxxxx免费| 国产在线视欧美亚综合| 国产午夜精品综合久久久| 亚洲熟妇av一区二区三区| 亚洲欧美成人一区二区在线电影 | 女人被狂c躁到高潮视频| 亚洲手机国产精品| 国内自拍视频在线观看h| 日韩人妻精品中文字幕专区| 国产午夜精品一区二区三区| 热久久久久久久| 一级一片内射在线播放| 国产成人精品无码免费看| 特级做a爰片毛片免费看无码| 最新精品国偷自产在线婷婷| 国产又色又爽的视频在线观看91| 狠狠色噜噜狠狠狠狠97首创麻豆| 国产熟妇高潮呻吟喷水| 国产中文字幕乱码在线| 国产女人精品一区二区三区| 亚洲精品少妇30p| 免费无码成人av在线播| 国产人妖一区二区在线| 精品一区二区三区蜜桃麻豆| 成人无码α片在线观看不卡| 亚洲AV秘 片一区二区三| 亚洲无av码一区二区三区| 天天摸天天做天天爽水多| 伴郎粗大的内捧猛烈进出视频观看 | 天天狠天天添日日拍| 最新国产在线精品91尤物| 国产自拍在线视频观看| 免费不卡无码av在线观看| 久久香蕉国产线熟妇人妻|