实时数据更新
使用HTTPService来时实现数据的实时更新,数据源使用的是xml文件,然后使用ENTER_FRAME事件重复执行
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="creationComplete()" > <s:layout> <s:BasicLayout/> </s:layout> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.http.HTTPService; public var service:HTTPService = new HTTPService(); public function SetVisits():void { service.url = "Province.xml"; service.method = "post"; service.resultFormat = "e4x"; service.addEventListener(ResultEvent.RESULT, xmlLoaded); service.addEventListener(FaultEvent.FAULT,xmlError); service.send(); } //HTTPService正确时执行的方法 public function xmlLoaded(e:ResultEvent):void { var xml:XML = service.lastResult as XML; textarea1.text = xml.toString(); } //HTTPService异常时执行的方法 public function xmlError(e:FaultEvent):void { trace("出现异常"); } //实时数据更新,ENTER_FRAME public function creationComplete():void { this.addEventListener(Event.ENTER_FRAME,function():void{ SetVisits(); }); } ]]> </fx:Script> <s:TextArea x="10" y="10" width="250" height="550" id="textarea1"/> </s:Application>
Province.xml文件
<?xml version="1.0" encoding="UTF-8"?> <main> <province> <name>湖南</name> <visits>2</visits> </province> <province> <name>湖北</name> <visits>43</visits> </province> <province> <name>江西</name> <visits>2</visits> </province> <province> <name>浙江</name> <visits>43</visits> </province> <province> <name>安徽</name> <visits>2</visits> </province> <province> <name>江苏</name> <visits>43</visits> </province> </main>
效果图,当修改xml文档时对应的flash界面的数据也发生了变化