首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

在Flex3中处置XML

2012-12-25 
在Flex3中处理XML在Flex3中处理XML文件有两种方法,即:???????? 1. 使用Model标签;?????????2. 使用HTTPSer

在Flex3中处理XML

在Flex3中处理XML文件有两种方法,即:

???????? 1. 使用Model标签;
?????????2. 使用HTTPService标签;

使用Model标签时,可以直接将XML数据输入在两个Model标签之间,也可以将XML文件的路径赋给Mode标签的source属性,具体代码如下:

?????????<mx:Application>
?????????????? <mx:Model id="model">
??????????????????? <>....<>
??????????????????? ...xml数据....
??????????????????? <>....<>
?????????????? </mx:Model>
???????? </mx:Application>
????????
????????或者
????????
??????? <mx:Application>
?????????????? <mx:Model id="model" source="xml文件路径" />
???????? </mx:Application>

如上代码,xml文件加载后,要处理加载后的数据,还需要处理Application的creationComplete事件,及给creationComplete事件增加一个处理函数,如:xmlHandle(obj:Object):void,次函数必接受一个Object类型的参数,修改上面的代码如下:

??????? <mx:Application creationComplete="xmlHandle(model)">
?????????????? <mx:Script>
???????????????????? <!CDATA[
???????????????????????????? private function xmlHandle(obj:Object):void
???????????????????????????? {
?????????????????????????????????? trace(obj.节点....);
?????????????????????????????}
???????????????????? ]]>
???????????????</mx:Scirpt>
?????????????? <mx:Model id="model" source="xml文件路径" />
???????? </mx:Application>

使用HTTPService时,HTTPService会调用send()方法将xml文件中的数据发送给SWF文件,当SWF文件接受全部数据后,HTTPService会产生一个result事件,此事件为ResultEvent的一个实例,xml文件的数据会保存在ResultEvent实例的result属性中。HTTPService的lastResult属性也会保存有xml文件的数据,所以要处理加载进来的xml数据,就需要侦听result事件。加载进来的数据会保存在一个ArrayCollection数组中。具体修改代码如下:

???????? <mx:Application creationComplete="model.send()">
?????????????? <mx:Script>
???????????????????? <!CDATA[
???????????????????????????? import mx.collection.ArrayCollection;
???????????????????????????? import mx.rpc.events.ResultEvent;

?????????????????????????????
???????????????????????????? private var xmlData:ArrayCollection;
?????????????????????????????private function xmlHandle(evt:ResultEvent):void
???????????????????????????? {
???????????????????????????????????xmlData = evt.result.节点.....
?????????????????????????????}
???????????????????? ]]>
???????????????</mx:Scirpt>
?????????????? <mx:HTTPService id="model" url="xml文件路径"?result="xmlHandle(event)" />
???????? </mx:Application>

如果在加载xml数据是出错,可以监听HTTPService的fault事件。具体修改代码如下:

??????????????? <mx:Script>
???????????????????? <!CDATA[
???????????????????????????? import mx.collection.ArrayCollection;
???????????????????????????? import mx.rpc.events.ResultEvent;
???????????????????????????? import mx.rpc.events.FaultEvent;

???????????????????????????? private var xmlData:ArrayCollection;
?????????????????????????????private function xmlHandle(evt:ResultEvent):void
???????????????????????????? {
???????????????????????????????????xmlData = evt.result.节点.....
?????????????????????????????}

??????????????????????????????private function faultHandle(evt:FaultEvent):void
???????????????????????????? {
???????????????????????????????????trace("加载xml出错");
?????????????????????????????}

???????????????????? ]]>
???????????????</mx:Scirpt>
???????????????<mx:HTTPService id="model" url="xml文件路径"?result="xmlHandle(event)" fault="faultHandle(event)"/>


热点排行