成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Flex如何動態(tài)讀取外部XML文件

這篇文章將為大家詳細講解有關Flex如何動態(tài)讀取外部XML文件,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,成都創(chuàng)新互聯(lián)公司面向各種領域:成都石涼亭網(wǎng)站設計、營銷型網(wǎng)站建設解決方案、網(wǎng)站設計等建站排名服務。


Flex動態(tài)讀取外部xml文件

在Flex中xml文件是使用頻率非常高的,因為在Flex中xml文件的操作非常簡單。有的時候我們希望用xml作為配置文件來動態(tài)配置我們的系統(tǒng)。雖然FlexSDK提供了一個只能用在在mxml文件中<xml/>標簽,這個標簽的source屬性可以讀取外部的xml文件,但是這樣的方式會使xml文件嵌入到生成的swf文件中。這樣做的結(jié)果就是發(fā)布后即使修改了xml的內(nèi)容對程序也么有影響。這樣做沒有達到使用外部xml文件的目的。要想實現(xiàn)動態(tài)讀取xml文件需要使用到URLLoader這個類,這個類位于flash.net包中。

一、創(chuàng)建URLRequest對象

要想使用URLLoader讀取外部的xml,必須調(diào)用URLLoader的load()函數(shù)。這個函數(shù)有一個參數(shù)就是URLRequest,所以必須先創(chuàng)建一個URLRequest對象。
varurl:URLRequest=newURLRequest("TreeData.xml");
其中URLRequest的參數(shù)必須是一個有效的url,因為這個文件在和生成的swf在同一個目錄下,所以直接寫了文件名,TreeData.xml是外部xml文件的文件名。如果在其他目錄下文件名就必須帶路徑了。

二、讀取外部xml文件

1.創(chuàng)建URLLoader對象。
varloader:URLLoader=newURLLoader();

2.為新創(chuàng)建的對象注冊事件監(jiān)聽,我們需要監(jiān)聽的是Event.COMPLETE事件,這個事件代表讀取xml文件完成。
loader.addEventListener(Event.COMPLETE,onComplete);
onComplete是Event.COMPLETE事件的處理函數(shù),當發(fā)生Event.COMPLETE事件的時候會調(diào)用這個函數(shù)。

3.調(diào)用load函數(shù)
loader.load(url);
參數(shù)url就是前面創(chuàng)建的URLRequest對象。

三、事件處理函數(shù)onComplete

函數(shù)的完整定義是這個樣子的:
privatefunctiononComplete(event:Event):void{}
前面已經(jīng)把這個函數(shù)注冊給URLLoader對象的Event.COMPLETE事件了。當發(fā)生Event.COMPLETE事件時,這個函數(shù)就會被調(diào)用。接下來的問題就是怎么得到取到的xml數(shù)據(jù)了。
首先把onComplete函數(shù)的參數(shù)event的target屬性轉(zhuǎn)換成URLLoader對象
varresult:URLLoader=URLLoader(event.target);
然后再把這個對象的data屬性轉(zhuǎn)換成xml對象
datas=XML(result.data);
這樣就可以把TreeData.xml的內(nèi)容讀取到了datas中了。

后記

使用這種方式可以動態(tài)的讀取xml文件。取到的內(nèi)容可以動態(tài)配置程序,提供動態(tài)的數(shù)據(jù)源。至于具體怎樣應用就看自己的需求了。

完整的代碼:

viewplaincopytoclipboardprint?  <?xmlversionxmlversion="1.0"encoding="utf-8"?> <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"creationComplete="init()"> <mx:Script> <!--[CDATA[  [Bindable]  privatevardatas:XML=newXML();  privatefunctioninit():void  {  varurl:URLRequest=newURLRequest("TreeData.xml");  varloader:URLLoader=newURLLoader();  loader.addEventListener(Event.COMPLETE,onComplete);  loader.load(url);  }  privatefunctiononComplete(event:Event):void{  varresult:URLLoader=URLLoader(event.target);  datas=XML(result.data);  }  ]]--> </mx:Script> <mx:XMLidmx:XMLid="treeData"source="TreeData.xml"/> <mx:Treexmx:Treex="23.5"y="36"width="214"height="407"  dataProvider="{datas.node}"labelField="@label"/> <mx:Treexmx:Treex="319.5"y="36"width="214"height="407"  dataProvider="{treeData.node}"labelField="@label"/> </mx:Application> <?xmlversionxmlversion="1.0"encoding="utf-8"?> <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"  layout="absolute"creationComplete="init()">  <mx:Script>   <!--[CDATA[     [Bindable]     privatevardatas:XML=newXML();     privatefunctioninit():void     {      varurl:URLRequest=newURLRequest("TreeData.xml");      varloader:URLLoader=newURLLoader();      loader.addEventListener(Event.COMPLETE,onComplete);      loader.load(url);     }     privatefunctiononComplete(event:Event):void{      varresult:URLLoader=URLLoader(event.target);      datas=XML(result.data);     }    ]]-->  </mx:Script>  <mx:XMLidmx:XMLid="treeData"source="TreeData.xml"/>  <mx:Treexmx:Treex="23.5"y="36"width="214"height="407"   dataProvider="{datas.node}"labelField="@label"/>  <mx:Treexmx:Treex="319.5"y="36"width="214"height="407"   dataProvider="{treeData.node}"labelField="@label"/> </mx:Application>

用到的TreeData.xml的內(nèi)容:

viewplaincopytoclipboardprint?  <?xmlversionxmlversion="1.0"encoding="utf-8"?> <root> <nodelabelnodelabel="00 TOP"/> <nodelabelnodelabel="01 open"> <nodelabelnodelabel="01backup"/> <nodelabelnodelabel="02edit"/> </node> <nodelabelnodelabel="execute"/> </root> <?xmlversionxmlversion="1.0"encoding="utf-8"?> <root>  <nodelabelnodelabel="00 TOP"/>  <nodelabelnodelabel="01 open">   <nodelabelnodelabel="01backup"/>   <nodelabelnodelabel="02edit"/>  </node>  <nodelabelnodelabel="execute"/> </root>

代碼補充說明:
代碼中用兩種方式讀取外部的xml文件為兩個Tree控件提供數(shù)據(jù)源,可以對比一下兩種方式的不同。

關于“Flex如何動態(tài)讀取外部XML文件”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

新聞名稱:Flex如何動態(tài)讀取外部XML文件
轉(zhuǎn)載源于:http://jinyejixie.com/article2/ppehic.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、做網(wǎng)站網(wǎng)站策劃、App設計、自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
隆德县| 东山县| 彩票| 达孜县| 朝阳区| 呼伦贝尔市| 吉林市| 湘潭市| 阜宁县| 沽源县| 历史| 宜城市| 成武县| 黄浦区| 镇原县| 延庆县| 武夷山市| 光泽县| 河北区| 襄樊市| 永德县| 河西区| 方山县| 桐梓县| 科技| 黑河市| 竹山县| 罗江县| 乌恰县| 平陆县| 淮北市| 康保县| 沈阳市| 清镇市| 天水市| 大宁县| 云龙县| 沙坪坝区| 沾益县| 茌平县| 漾濞|