答案 0 :(得分:8)
package
{
import flash.net.URLLoader;
import flash.net.URLRequest;
public dynamic class urlURLLoader extends URLLoader
{
private var _req:URLRequest;
public function urlURLLoader( request:flash.net.URLRequest = null ):void
{ super( request );
_req = request;
}
public override function load( request:flash.net.URLRequest ):void
{ _req = request;
super.load( request );
}
public function get urlRequest( ):URLRequest
{ return _req;
}
}
答案 1 :(得分:1)
这是一个很好的方法。相反的方法是将URLLoader包装在一个类中并将信息存储在那里,如果您希望通知请求类已完成加载以及哪个URL已成功加载。
您可以访问类似
的内容customLoader.url="http://.....";
customLoader.onLoadDelegate = this;
customLoader.load();
并等待
中的回调public function customLoaderComplete(url:String, data:[Object or whatever you set]) {
}
在customLoader类中存储url和delegate
private var url:String;
private var onLoadDelegate:Object;
public function set url(_url:String):void {
url = _url;
}
public function set onLoadDelegate(_onLoadDelegate:Object):void {
onLoadDelegate = _onLoadDelegate;
}
然后创建请求,URLLoader等,并设置Event.COMPLETE侦听器以触发向委托报告的函数
public function dataLoaded(event:Event):void {
.. parse event.target.data if needed...
onLoadDelegate.customLoaderComplete(url, data);
}
如果再进一步,顶级“请求发布”类可以遵循接口/扩展基类,因此您不必使用匿名对象。