·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]客户端使用flash从服务端读取动态生成的XML格式数据

时间:2014-03-15 12:25cuplayer.com
BS结构下,客户端使用flash从服务端读取动态生成的XML格式数据,并将获取的数据进行解析和发送到界面显示。

 BS结构下,客户端使用flash从服务端读取动态生成的XML格式数据,并将获取的数据进行解析和发送到界面显示。

  1. <root> 
  2. <username uid="ceshi001″> 
  3. <title>CuPlayer.com</title> 
  4.   <beginTime>2009-10-10</beginTime> 
  5.   <endTime>2009-10-01</endTime> 
  6.   <currentMoney>56456</currentMoney> 
  7.   <state>良好</state> 
  8.   <isMember></isMember> 
  9.   </username> 
  10.  <username uid="ceshi002″> 
  11.  <title>CuPlayer.net</title> 
  12.   <beginTime>2009-10-10</beginTime> 
  13.   <endTime>2009-10-01</endTime> 
  14.   <currentMoney>23</currentMoney> 
  15.   <state>良好</state> 
  16.  <isMember></isMember> 
  17.  </username> 
  18. </root> 

要求解析成单个user对象并使用Array保存,其中user对象包含XML中的数据的属性

主要代码:

  1. package { 
  2.   import flash.display.Sprite; 
  3.   import flash.events.*; 
  4.   import flash.net.URLLoader; 
  5.   import flash.net.URLRequest; 
  6.   import flash.xml.*; 
  7.   
  8.   public class FlashXml extends Sprite 
  9.   { 
  10.     //UserInfo业务对象实例 
  11.     private var bui:BUserInfo = new BUserInfo() ; 
  12.     //XML缓存 
  13.     private var XmlData:XML; 
  14.     //用户列表 
  15.     private var userList:Array; 
  16.   
  17.     //constructor 
  18.     public function FlashXml() { 
  19.       //加载XML 
  20.       loadXml(); 
  21.     } 
  22.     /** 
  23.     *方法名:loadXml 
  24.     *功能:加载外部XML数据 
  25.     */ 
  26.     private function loadXml():void{ 
  27.       var loader:URLLoader = new URLLoader(); 
  28.       //设置Loader的事件监听 
  29.       configureListeners(loader); 
  30.       //URL请求对象,从配置类中获取URL 
  31.       var request:URLRequest = new URLRequest(ApplicationConfig.RequestURL); 
  32.       try { 
  33.         loader.load(request); 
  34.       } catch (error:Error) { 
  35.         trace("加载XML错误."); 
  36.       } 
  37.     } 
  38.   
  39.     /** 
  40.     *方法名:configureListeners 
  41.     *功能:设置对象的事件监听 CuPlayer.com 
  42.     */ 
  43.     private function configureListeners(dispatcher:IEventDispatcher):void { 
  44.       //加载完成 CuPlayer.com 
  45.       dispatcher.addEventListener(Event.COMPLETE, completeHandler); 
  46.       //设置读取完成事件绑定 
  47.       dispatcher.addEventListener(Event.COMPLETE, completeHandler); 
  48.       //捕获安全错误和IO错误 
  49.       dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
  50.     } 
  51.   
  52.     /** 
  53.     *方法名:completeHandler 
  54.     *功能:XML数据加载完毕之后操作 CuPlayer.com 
  55.     */ 
  56.     private function completeHandler(event:Event):void { 
  57.       var loader:URLLoader = URLLoader(event.target); 
  58.       this.XmlData = new XML(loader.data); 
  59.       userList = bui.GetUserInfoList(XmlData); 
  60.       this.XmlParse() 
  61.     } 
  62.   
  63.     /** 
  64.     *方法名:securityErrorHandler 
  65.     *功能:Flash安全配置限制 CuPlayer.com 
  66.     */ 
  67.     private function securityErrorHandler(event:SecurityErrorEvent):void { 
  68.       trace("SecurityError: " + event); 
  69.     } 
  70.   
  71.     /** 
  72.     *方法名:ioErrorHandler 
  73.     *功能:IO错误 CuPlayer.com 
  74.     */ 
  75.     private function ioErrorHandler(event:IOErrorEvent):void { 
  76.       trace("IOError: " + event); 
  77.     } 
  78.   
  79.     /** 
  80.     *方法名:XmlParse 
  81.     *功能:解析XML的简单测试 
  82.     */ 
  83.     private function XmlParse():void { 
  84.       //CuPlayer.com用户Array的遍历 
  85.       for each(var user:UserInfo in userList){ 
  86.         trace(user.getUid()); 
  87.         trace(user.getTitle()); 
  88.         trace(user.getBeginTime()); 
  89.         trace(user.getEndTime()); 
  90.         trace(user.getCurrentMoney()); 
  91.         trace(user.getState()); 
  92.         trace(user.getIsMember()); 
  93.       } 
  94.     } 
  95.   } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器