如果我有一个SWF和一个位于同一文件夹的XML文件,有没有办法让加载器使用SWF的位置作为加载外部文件的起点(而不是HTML文件)哪个SWF玩?)?我们正在复制一组网站,并且一些路径具有唯一的页面代码,但如果SWF只查看他们自己的文件夹,他们就可以正常运行。 :)
谢谢! 克里斯
答案 0 :(得分:1)
可以试试这个。
var base:String = unescape( LoaderInfo( this.root.loaderInfo ).url ); // url of SWF
// now we need to remove the SWF name from the url
var lastSlash:uint = Math.max( this.base.lastIndexOf( "\\" ), this.base.lastIndexOf( "/" ) );
return( base.substr( 0, lastSlash + 1 ) );
这将获取SWF的URL,循环遍历它并找到最后一个" \"或" /"确定swf文件名的起始位置,并将基数设置为等于SWF的路径。
然后从
更改所有相对URLRequest
var url:URLRequest = new URLRequest( "assets/blah/blah/img.png" );
到
var url:URLRequest = new URLRequest( base + "assets/blah/blah/img.png" );
这将是我作为应用程序类的静态属性添加的内容,以便您只访问字符串而不进行任何转换或unicode转义或任何重复。只需在启动时运行一次并将其作为静态var抛出,因为它永远不会改变。
(我测试了这个并且它起作用了,至少在本地。但我认为没有理由为什么它与网络上的URL表现不同)