1505/090
AAS3WDP-Chapter 6 Remote Proxy 杩滅▼浠g悊
杩欓噷鏄竴涓狥lickr鐨勮繙绋嬪浘鐗囨悳绱唬鐞嗗疄渚嬶紝瀵逛簡锛孎lickr鐨勮繙绋嬪浘鐗囨悳绱㈤渶瑕佺敵璇稟PI锛屽埆蹇樹簡鍘荤敵璇蜂竴涓
浠g爜閮ㄥ垎锛岀被PhotoSearchProxy.as锛
package{
import flash.events.DataEvent;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class PhotoSearchProxy extends EventDispatcher{
private static const API_KEY:String="c4643072bfc38caa0257f4c039624cb5";//杩欐槸鎴戠殑Flickr Api_key
private static const FLICKR_URL:String="http://api.flickr.com/services/rest/";//Flickr鐨刟pi鍦板潃
public function PhotoSearchProxy(){}
private function onComplete(_evt:Event):void{
dispatchEvent(new DataEvent(Event.COMPLETE,false,false,XML(_evt.target.data)));
}
public function search(userId:String,tags:String):void{
var loader:URLLoader=new URLLoader();
var request:URLRequest=new URLRequest(PhotoSearchProxy.FLICKR_URL+"?method=flickr.photos.search&user_id="+userId+"&tags="+tags+"&api_key="+PhotoSearchProxy.API_KEY);
loader.addEventListener(Event.COMPLETE,onComplete);
loader.load(request);
}
}
}
鍦╨oader杞藉叆request涔嬪悗dispatchEvent涓涓狣ataEvent銆
鍏蜂綋璋冪敤閮ㄥ垎锛
import PhotoSearchProxy;
var flickr:PhotoSearchProxy=new PhotoSearchProxy();
flickr.addEventListener(Event.COMPLETE,onComplete);
flickr.search("","yellow");
function onComplete(_evt:DataEvent){
trace(_evt.data);
}
瀹為檯鍖朠hotoSearchProxy涔嬪悗锛岃皟鐢╯earch鏂规硶锛宭oad瀹屼箣鍚庢帴鏀禿ispatchEvent鐨凞ataEvent鐨刣ata骞秚race銆
璁板緱浠ュ墠鐪嬭繃鐨勪竴涓狝IR鐨凴SS闃呰鍣ㄤ篃鏄繖鏍峰仛鐨勶紝鍐欎簡涓狤ventDispatcher鐨勫瓙绫伙紝杞藉叆RSS婧愬湴鍧鍚巇ispatchEvent銆傘傘