【发布时间】:2024-01-07 17:47:01
【问题描述】:
如果我有一个 SWF 和一个 XML 文件位于同一个文件夹中,有没有办法让加载器使用 SWF 的位置作为其加载外部文件的起点(而不是 HTML 文件哪个 SWF 播放)?我们正在复制一组网站,其中一些路径具有唯一的页面代码,但如果 SWF 只在自己的文件夹中查找,它们就可以正常运行。 :)
谢谢! 克里斯
【问题讨论】:
标签: actionscript-3 file flash external loader
如果我有一个 SWF 和一个 XML 文件位于同一个文件夹中,有没有办法让加载器使用 SWF 的位置作为其加载外部文件的起点(而不是 HTML 文件哪个 SWF 播放)?我们正在复制一组网站,其中一些路径具有唯一的页面代码,但如果 SWF 只在自己的文件夹中查找,它们就可以正常运行。 :)
谢谢! 克里斯
【问题讨论】:
标签: actionscript-3 file flash external loader
可以试试这个。
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 的路径。
然后将所有相对的URLRequests 从
var url:URLRequest = new URLRequest( "assets/blah/blah/img.png" );
到
var url:URLRequest = new URLRequest( base + "assets/blah/blah/img.png" );
这将是我将添加为您的应用程序类的静态属性的内容,以便您只访问一个字符串,而不会重复执行任何强制转换或 unicode 转义或任何操作。只需在启动时运行一次并将其作为静态变量抛出,因为它永远不会改变。
(我确实对此进行了测试,并且至少在本地可以正常工作。但是,我看不出它与来自网络的 URL 的行为有何不同的原因)
【讨论】: