有没有简单/好的方法从URLLoader对象中获取url?似乎至少有另外两个人(this guy和这个this guy)也想知道同样的事情。也许我们可以在求救信号上得到答案?
发布于 2009-07-31 22:15:40
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;
}
}发布于 2009-08-01 03:38:13
这是一个很好的方法。相反的方法是将你的URLLoader包装在一个类中,并将信息存储在那里,如果你想让请求的类被告知加载完成了,哪个url被成功加载了。
你可以像这样访问它,
customLoader.url="http://.....";
customLoader.onLoadDelegate = this;
customLoader.load();并等待回调
public function customLoaderComplete(url:String, data:[Object or whatever you set]) {
}在customLoader类中存储url和委托
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);
}如果你更进一步,顶层的“请求发布”类可以依附于一个接口/扩展一个基类,这样你就不必使用匿名对象了。
https://stackoverflow.com/questions/1215030
复制相似问题