Flex读取外部XML文件的四种方法

开发 后端
本文向大家介绍一下Flex读取外部XML文件的几种方法,因为Flex支持强大的E4X功能,所以在flex中xml文件的操作非常简单。

本文和大家重点讨论一下Flex读取外部XML文件的几种方法,因为Flex支持强大的E4X功能,所以在flex中xml文件的操作非常简单。下面总结一下常用的读取XML配置文件的方法,希望对你有所帮助。

Flex读取外部XML文件的几种方法

因为Flex支持强大的E4X功能,所以在flex中xml文件的操作非常简单。下面,总结一下常用的读取XML配置文件的方法:

1使用Model标签形式

首先声明Model标签:

  1. <mx:Modelidmx:Modelid="danxuan"source="myData/danxuan.xml"/> 
  2.  
  3. <mx:DataGriddataProvidermx:DataGriddataProvider="{danxuan.ti}"> 
  4.  
  5. </mx:DataGrid> 
  6.  

 
2使用XML标签形式

  1. <mx:XMLidmx:XMLid="danxuan"source="myData/danxuan.xml"/> 
  2.  
  3. <mx:DataGriddataProvidermx:DataGriddataProvider="{danxuan.ti}"> 
  4.  

 
3使用HttpService
 

  1. <mx:HTTPServiceidmx:HTTPServiceid="danxuan"url="myData/danxuan.xml"  
  2.  
  3. result="resultHandler(event)"/> 
  4.  
  5. privatefunctionresultHandler(event:ResultEvent):void  
  6.  
  7. {  
  8. vardp:ArrayCollection=event.resultasArrayCollection;  
  9. }  
  10.  

 
同时,在标签Application的createComplete事件中添加danxuan.send();语句(其中“danxuan”是mx:HTTPService的id)调用Http请求。

即:<mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"createComplete="danxuan.send();">


4使用URLLoader

有的时候我们希望用xml作为配置文件来动态配置我们的系统。虽然flexSDK提供了一个只能用在在mxml文件中<xml/>、<model/>标签,这些标签的source属性可以读取外部的xml文件,但是这样的方式会使xml文件嵌入到生成的swf文件中。这样做的结果就是发布后即使修改了xml的内容对程序也没有影响。这样做没有达到使用外部xml文件的目的。要想实现动态读取xml文件需要使用到URLLoader这个类,这个类位于flash.net包中。

一、创建URLRequest对象

要想使用URLLoader读取外部的xml,必须调用URLLoader的load()函数。这个函数有一个参数就是URLRequest,所以必须先创建一个URLRequest对象。

varurl:URLRequest=newURLRequest("myData/danxuan.xml");

其中URLRequest的参数必须是一个有效的url。

二、读取外部xml

1.创建URLLoader对象。

varloader:URLLoader=newURLLoader();

2.为新创建的对象注册事件监听,我们需要监听的是Event.COMPLETE事件,这个事件代表读取xml文件完成。

loader.addEventListener(Event.COMPLETE,onComplete);

onComplete是Event.COMPLETE事件的处理函数,当发生Event.COMPLETE事件的时候会调用这个函数。

3.调用load函数

loader.load(url);

参数url就是前面创建的URLRequest对象。

三、事件处理函数onComplete

函数的完整定义是这个样子的:

privatefunctiononComplete(event:Event):void{}

面已经把这个函数注册给URLLoader对象的Event.COMPLETE事件了。当发生Event.COMPLETE事件时,这个函数就会被调用。接下来的问题就是怎么得到取到的xml数据了。

首先把onComplete函数的参数event的target属性转换成URLLoader对象

varresult:URLLoader=URLLoader(event.target);

然后再把这个对象的data属性转换成xml对象

datas=XML(result.data);

这样就可以把danxuan.xml的内容读取到了datas中了。

使用这种方式可以动态的读取xml文件。取到的内容可以动态配置程序,提供动态的数据源。至于具体怎样应用就看自己的需求了。

 

  1. varurlLoader:URLLoader=newURLLoader();  
  2. urlLoader.addEventListener(Event.COMPLETE,handleURLLoaderCompleted);  
  3. urlLoader.load(newURLRequest("myData/duanxuan.xml"));  
  4.  
  5. privatefunctionhandleURLLoaderCompleted(event:Event):void  
  6.  
  7. {  
  8. varloader:URLLoader=event.targetasURLLoader;  
  9. xml=XML(loader.data);  
  10. }  
  11. </mx:DataGrid> 

【编辑推荐】

  1. 技术分享 如何进行Flex Spring整合
  2. Flex安全沙箱问题解决方法
  3. Flex及FlexBuilder2.0开发环境详解
  4. FlexBuilder3.0与Eclipse3.4的完美结合
  5. Flex内存泄露解决方法和内存释放优化原则

 

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-08-13 08:47:28

xml文件Flex

2011-06-22 15:21:08

XML

2009-03-31 13:12:30

解析XMLJava

2014-03-17 09:22:43

Linux命令

2022-09-02 14:29:01

JavaScrip数组属性

2010-08-06 14:28:55

Flex CSS样式

2011-08-29 17:32:50

Ubuntu

2009-02-25 09:52:14

类型转换.NET 强制转型

2020-08-10 00:30:55

备份密码iPhone移动安全

2010-07-28 13:54:42

Flex数据绑定

2010-08-02 16:58:08

Flex配置文件

2010-08-06 09:38:11

Flex读取XML

2014-02-28 10:50:24

Linux命令

2009-09-17 16:55:58

C#组件设计

2010-03-18 17:57:37

Java XMLSoc

2020-07-24 09:56:12

React开发数据

2020-01-21 19:15:23

漏洞安全IT

2021-09-03 11:24:04

云计算云计算环境云应用

2023-02-03 08:47:20

职位招聘难题

2010-08-05 13:44:12

Flex布局
点赞
收藏

51CTO技术栈公众号