banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

flashAS實現遠程伺服器xml資料讀取解析

週日 CG 接到一位網路上的朋友的問題,要求用 flash ActionScript 實現從服務端讀取動態生成的數據並且進行解析,輸入到用戶界面的小程序今天代碼放上來與大家分享,實現過程很簡單,供初學者學習,也希望老鳥指正。

要求:BS 結構下,客戶端使用 flash 從服務端讀取動態生成的 XML 格式數據,並將獲取的數據進行解析和發送到界面顯示。

XML 格式:

? ??? sdfsdf ??? 2009-10-10 ??? 2009-10-01 ??? 56456 ??? 良好 ??? ? ? ??? dfgdfgdfg ??? 2009-10-10 ??? 2009-10-01 ??? 23 ??? 良好 ??? ?

要求解析成單個 user 對象並使用 Array 保存,其中 user 對象包含 XML 中的數據的屬性

主要代碼:

package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.xml.*;

public class FlashXml extends Sprite
{
//UserInfo 業務對象實例
private var bui = new BUserInfo() ;
//XML 緩存
private var XmlData;
// 用戶列表
private var userList;

//constructor
public function FlashXml() {
  //加載XML
  loadXml();
}
/\*\*
\*方法名:loadXml
\*功能:加載外部XML數據
\*/
private function loadXml():void{
  var loader:URLLoader = new URLLoader();
  //設置Loader的事件監聽
  configureListeners(loader);
  //URL請求對象,從配置類中獲取URL
  var request:URLRequest = new URLRequest(ApplicationConfig.RequestURL);
  try {
    loader.load(request);
  } catch (error:Error) {
    trace("加載XML錯誤.");
  }
}

/\*\*
\*方法名:configureListeners
\*功能:設置對象的事件監聽
\*/
private function configureListeners(dispatcher:IEventDispatcher):void {
  //加載完成
  dispatcher.addEventListener(Event.COMPLETE, completeHandler);
  //設置讀取完成事件綁定
  dispatcher.addEventListener(Event.COMPLETE, completeHandler);
  //捕獲安全錯誤和IO錯誤
  dispatcher.addEventListener(SecurityErrorEvent.SECURITY\_ERROR, securityErrorHandler);
}

/\*\*
\*方法名:completeHandler
\*功能:XML數據加載完畢之後操作
\*/
private function completeHandler(event:Event):void {
  var loader:URLLoader = URLLoader(event.target);
  this.XmlData = new XML(loader.data);
  userList = bui.GetUserInfoList(XmlData);
  this.XmlParse()
}

/\*\*
\*方法名:securityErrorHandler
\*功能:Flash安全配置限制
\*/
private function securityErrorHandler(event:SecurityErrorEvent):void {
  trace("SecurityError: " + event);
}

/\*\*
\*方法名:ioErrorHandler
\*功能:IO錯誤
\*/
private function ioErrorHandler(event:IOErrorEvent):void {
  trace("IOError: " + event);
}

/\*\*
\*方法名:XmlParse
\*功能:解析XML的簡單測試
\*/
private function XmlParse():void {
  //用戶Array的遍歷
  for each(var user:UserInfo in userList){
    trace(user.getUid());
    trace(user.getTitle());
    trace(user.getBeginTime());
    trace(user.getEndTime());
    trace(user.getCurrentMoney());
    trace(user.getState());
    trace(user.getIsMember());
  }
}

}
}

代碼說明 UserInfo 為包含 user 全部信息的實體類,BUserInfo 則是 UserInfo 實體的業務層基本業務類,其中包含返回所有用戶列表的 GetUserInfoList () 方法,具體可以參看的完整源代碼。

完整源代碼下載地址: http://www.lidaren.com/code/FLashXML/src.zip

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。