1,ajax请求数据
/**
* @desc 发动ajax请求
* @param url:url [data:ajax的data func:callback]
*
**/
private function _ajax(ajaxurl:String,data="",callback="",method=URLRequestMethod.POST){
var self = this;
this._ajaxTimer = new Timer(1000,5);//请求超时时间 5秒
this._ajaxTimer.start();
this._ajaxLoader = new URLLoader();
this._ajaxLoader.dataFormat = URLLoaderDataFormat.TEXT;
this._ajaxLoader.addEventListener(Event.COMPLETE,function(e){ self._ajaxComplete(e,callback); });
this._ajaxLoader.addEventListener(IOErrorEvent.IO_ERROR, function():void{});
this._ajaxLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function():void{});
this._ajaxRequest = new URLRequest(ajaxurl);
this._ajaxRequest.data =data;
this._ajaxRequest.method = method;
this._ajaxLoader.load(this._ajaxRequest);
}
/**
* @desc 发动ajax请求结束的callback
* @param e:event [ func:callback]
*
**/
private function _ajaxComplete(evt:Event,callback:Function){
try {
this._ajaxTimer.stop();
if(!evt.target.data){
return;
}
var _jd = JSON.decode((evt.target.data));
this._jsonData =_jd;
callback(_jd);
} catch (e: * ) {
//trace(evt.target.data);showDialog
trace("ajax faild:"+e);
}
}
出现ajax faild的时候,也许是callback函数里的错误,而不是ajax的错误(巨坑)
使用POST请求后,IE下可能会出现请求为GET的时候,原因不明
2,加载图片
var _urlLoader:Loader = new Loader();
var _bm:Bitmap;
_urlLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e){
_bm = new Bitmap(e.target.content.bitmapData);
_urlLoader.load( new URLRequest(url),new LoaderContext(true));
new LoaderContext(true)是为了主动在异步的的服务器上找crossdomain.xml,不设置就等着跨域的坑吧