AS3 SWF加载外部文件;更改默认位置

时间:2013-04-22 22:10:03

标签: actionscript-3 file flash external loader

如果我有一个SWF和一个位于同一文件夹的XML文件,有没有办法让加载器使用SWF的位置作为加载外部文件的起点(而不是HTML文件)哪个SWF玩?)?我们正在复制一组网站,并且一些路径具有唯一的页面代码,但如果SWF只查看他们自己的文件夹,他们就可以正常运行。 :)

谢谢! 克里斯

1 个答案:

答案 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表现不同)