Flex 動態讀取外部xml檔案

2021-05-10 06:11:30 字數 1485 閱讀 2623

在flex中xml檔案是使用頻率非常高的,因為在flex中xml檔案的操作非常簡單。有的時候我們希望用xml作為配置檔案來動態配置我們的系統。雖然flexsdk提供了乙個只能用在在mxml檔案中標籤,這個標籤的source屬性可以讀取外部的xml檔案,但是這樣的方式會使xml檔案嵌入到生成的swf檔案中。這樣做的結果就是發布後即使修改了xml的內容對程式也麼有影響。這樣做沒有達到使用外部xml檔案的目的。要想實現動態讀取xml檔案需要使用到urlloader這個類,這個類位於flash.net包中。

一、 建立urlrequest物件

要想使用urlloader讀取外部的xml,必須呼叫urlloader的load()函式。這個函式有乙個引數就是urlrequest,所以必須先建立乙個urlrequest物件。

var url:urlrequest = new urlrequest("treedata.xml");

其中urlrequest 的引數必須是乙個有效的url,因為這個檔案在和生成的swf在同乙個目錄下,所以直接寫了檔名,treedata.xml是外部xml檔案的檔名。如果在其他目錄下檔名就必須帶路徑了。

二、讀取外部xml

1.建立urlloader物件。

var loader:urlloader = new urlloader();

2.為新建立的物件註冊事件監聽,我們需要監聽的是event.complete事件,這個事件代表讀取xml檔案完成。

loader.addeventlistener(event.complete,oncomplete);

oncomplete是event.complete事件的處理函式,當發生event.complete事件的時候會呼叫這個函式。

3.呼叫load函式

loader.load(url);

引數url就是前面建立的urlrequest物件。

三、事件處理函式oncomplete

函式的完整定義是這個樣子的:

private function oncomplete(event:event):void{}

前面已經把這個函式註冊給urlloader物件的event.complete事件了。當發生event.complete事件時,這個函式就會被呼叫。接下來的問題就是怎麼得到取到的xml資料了。

首先把oncomplete函式的引數event的target屬性轉換成urlloader物件

var result:urlloader = urlloader(event.target);

然後再把這個物件的data屬性轉換成xml物件

datas = xml(result.data);

這樣就可以把treedata.xml的內容讀取到了datas中了。

後記使用這種方式可以動態的讀取xml檔案。取到的內容可以動態配置程式,提供動態的資料來源。至於具體怎樣應用就看自己的需求了。

完整的**:

**補充說明:

**中用兩種方式讀取外部的xml檔案為兩個tree控制項提供資料來源,可以對比一下兩種方式的不同。

Flex 讀取外 部XML檔案

因為flex 支援強大的 e4x功能,所以 在flex中xml文 件的操作非常簡單 下面,總結一下常用的讀取xml配 置檔案的方法 1 使用model標籤形式 首先宣告model標籤 2 使用xml標籤形式 3 使用httpservice result resulthandler event pri...

Flex讀取外部XML

1.使用xml標籤讀取外部資料 flex 3 flex 42.使用urlloader private function init void private function oncomplete event event void 如果在編譯過程中出現 無法訪問本地資源。則需要設定編譯引數 use n...

flex操作外部xml檔案

xml檔案 兩種方法 1,httpservice方法 bindable var mydata arraycollection new arraycollection private function init void private function resulthandler event res...