您的位置:首页 > 理论基础 > 计算机网络

(再续)HttpService读取本地XML文件

2011-11-06 16:48 471 查看
之前介绍了两种方式实现XML本地文件,下面介绍使用属性类来实现读取本地文件。

首先,申明一个Properties.as文件,代码如下:

package com.utils.allas
{
import flash.utils.Timer;
public  class Properties
{

public static var IP_valuse:String ;
public static var IFrameURL_valuse:String;
public static var IFrameURL_valuse_SR:String;;
public static var IFrameURL_valuse_Qone_ZL;
public static var IFrameURL_valuse_Qone_CB:String;;
public static var IFrameURL_valuse_Qone_JD:String;;
public static var  IFrameURL_valuse_Qone_ZT :String;

public static var IP_checkLog:String = "Smarter/checkLog";
public static var ServiceURL_7:String = "Smarter/getEmployeeList_7";		//七楼

public static var ServiceURL_8:String = "Smarter/getEmployeeList_8";        //八楼

public static var ServiceImgURL:String =  "Smarter";
public static var ElapseTimer:Number=5000;  //界面响应时间
public static var markNum:Number=1;        //初始化
public static var UrlWeather1:String=  "Smarter/";       //初始化
public static var UrlWeather:String= "Smarter/weather";       //初始化
public static var pageTransferTimer:Timer; //自定义定时器,可延时

public static var DestAddressUrl:String="Smarter/saveLog?log=";

public static var TopTitle:String;

public function Properties()
{
}
}
}


接着在ReadData.as文件中读取属性文件:

package com.utils.allas
{

/**
* *
* 不写接口,直接写实现类
*
* */

import com.utils.allas.Properties;

import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.utils.StringUtil;

public class ReadData
{
private var loader:URLLoader = new URLLoader();
private var request:URLRequest = new URLRequest("../config/data.xml");

public static var reaDdate: ReadData = null;
public var ipUrl:String;
//这是一个URL,其实是一个XML文件

//URL集合
public  var UrlArr:Array;

public static function getInstence() : ReadData{
if (reaDdate == null) {
reaDdate = new ReadData();
}
return reaDdate;
}

//加载这个构造器
public function ReadData()
{
// TODO Auto-generated method stub
loader.load(request);
//	Alert.show(loader.data);
loader.addEventListener(Event.COMPLETE, onComplete);
}

//事件响应函数
private function onComplete(event:Event):void
{
var loader:URLLoader = event.target as URLLoader;
if (loader != null)
{

//开始尝试使用Array方式
//				ipUrl = StringUtil.trim(loader.data);
//				//UrlArr = ipUrl.split("\r");

var xml:XML=XML(event.target.data);

//trace(xml.toString());
Properties.IP_valuse=xml.ip[0].@data;
Properties.IFrameURL_values=xml.ip[1].@data;
Properties.IFrameURL_valuse_SR=xml.ip[2].@data;
Properties.IFrameURL_valuse_Qone_ZL=xml.ip[3].@data;
Properties.IFrameURL_valuse_Qone_CB=xml.ip[4].@data;
Properties.IFrameURL_valuse_Qone_JD=xml.ip[5].@data;
Properties.IFrameURL_valuse_Qone_ZT=xml.ip[6].@data;
Properties.ElapseTimer=xml.ip[7].@data;
Properties.TopTitle=xml.ip[8].@data;

//				trace("共有"+UrlArr.length+"记录");
//				trace("时间:\t"+_ip_value);

}
else
{
Alert.show("不可以加载URLLoader类!");
}
}

public function get ipUrlR():String{
return ipUrl;
}

}
}


当然,下面附上XML文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<ips>
<ip data="http://192.168.17.41:8080/" tp="IP_valuse"/>
<ip data="http://192.168.17.101/ppar/" tp="IFrameURL_valuse"  />
<ip data="http://www.gzios.com/ppar/index.php/ours/extra"  name="IFrameURL_valuse_SR"/>
<ip data="http://gz.iscas.ac.cn:8080/pm/hl/ProjMonitorAction.do?method=getAllMonitor_tree&uuid=cdKO0KMJBPOOKDppNJLPTsCzp2Zl4lOU"  name="IFrameURL_valuse_Qone_ZL" />
<ip data=" http://gz.iscas.ac.cn:8080/pm/hl/ProgressMonitorAction.do?method=getProgressMonitor_tree&uuid=gXvtVtgrSmIdbrGCbVg40RNXDHuoMzZr"  name="IFrameURL_valuse_Qone_CB" />
<ip data="http://gz.iscas.ac.cn:8080/pm/hl/CostMonitorAction.do?method=getCostMonitor_tree&uuid=WwuOWTPJZTlCCcReqpgNvUE57Gm4Qa3c"  name="IFrameURL_valuse_Qone_JD" />
<ip data=" http://gz.iscas.ac.cn:8080/pm/hl/QualityMonitorAction.do?method=getQualityMonitor_tree&uuid=o2eMh6Pfc4shGtTVcSrJkkOjbx1S0eqQ"  name="IFrameURL_valuse_Qone_ZT" />
<ip data="60000"  name="ElapseTimer" />
<ip data="热烈欢迎中科院院地局*******一行莅临*******指导工作"    name="topTitle" />
</ips>


接着,再使用它的地方:

跟之前的相似,有两个地方使用之,例如在一个MXML文件中

<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"
xmlns:halo="library://ns.adobe.com/flex/halo"
minWidth="955" minHeight="600" width="1364" height="766"
xmlns:flexiframe1="com.google.code.flexiframe.*"
xmlns:marquee="com.bc.mar.app.*"
initialize="application1_initializeHandler(event);initClock();"
creationComplete="creationCompleteHandler();"

>


在它的as文件中:

application1_initializeHandler(event):void
{
rd = ReadData.getInstence();
}


creationCompleteHandler():void{
   Alert.show(rd.IP_values);
}


(完,待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: