// ActionScript file
package anUtil
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IEventDispatcher;
import flash.events.ProgressEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;
public class UrlUtil extends Sprite
{
private var _Tag:String;
/**
* 用于进行URL访问,
* @param Url:URL连接
* @param Mode:交互的方式,POST或者GET
* @param data:传过来的参数
* @param Tag:标志,确定调用者身份
* @retrun boolean:是否成功执行
* */
public function UrlUtil(Url:String,Mode:String,data:Object,Tag:String)
{
Main.loadingTag++;
_Tag=Tag;
switch(Mode)
{
case "Login" : Login(Url,Mode,data); break;
case "Get" : Get(Url,Mode); break;
case "POST" : Post(Url,Mode,data as URLVariables); break;
}
}
private function Get(Url:String,Mode:String):void{
var loader:URLLoader = new URLLoader();
//添加监听器
configureListeners(loader);
var request:URLRequest=new URLRequest(Url);
request.method = URLRequestMethod.GET;
try {
loader.load(request);
} catch (error:Error) {
trace("URL-GET请求失败,error:"+error.message);
}
}
private function Post(Url:String,Mode:String,variables:URLVariables):void{
var loader:URLLoader = new URLLoader();
//添加监听器
configureListeners(loader);
var request:URLRequest=new URLRequest(Url);
request.method = URLRequestMethod.POST;
request.data=variables;
try {
loader.load(request);
} catch (error:Error) {
trace("URL-POST请求失败,error:"+error.message);
}
}
private function Login(Url:String,Mode:String,data:Object):void{
var loader:URLLoader = new URLLoader();
//添加监听器
configureListeners(loader);
var request:URLRequest=new URLRequest(Url);
request.method = URLRequestMethod.POST;
//建立URLVariables对象
var variables:URLVariables = new URLVariables();
//需要传递的参数
variables.systemID = data.systemID;
variables.cipher = data.cipher;
request.data=variables;
try {
loader.load(request);
} catch (error:Error) {
trace("URL-POST请求失败,error:"+error.message);
}
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
}
private function completeHandler(event:Event):void{
// trace("加载完成");
var e:MyEvent=new MyEvent("UrlLoaderComp");
e.string=URLLoader(event.target).data;
e.tag=_Tag;
dispatchEvent(e);
// trace("测试"+e.tag+"aaa"+e.string);
}
private function progressHandler(event:ProgressEvent):void
{
var i:Number=Math.round(event.bytesLoaded/event.bytesTotal*100);
// trace("已加载字节:" + event.bytesLoaded + " 总字节: " + event.bytesTotal+" 当前进度:"+i+"%");
}
}
}