ActionScript 2加载另一个加载其他文件的SWF - 相对路径/网址问题

时间:2010-11-15 22:53:25

标签: actionscript-2

首先几个事实:
 1.我只能使用ActionScript 2.
 2.所有文件都在同一个域内(即“http://www.example.com”)。

我有一个加载程序SWF,它充当网站(根文件夹)中位于“/”的选择工具(“ auto_magic.swf ”)。<登记/> 用户选择他需要的工具(它是一个机械诊断系统)并且主电影加载它(目前我使用loadMovie() - 如果需要则建议其他)。
该工具位于“ / tools / [tools_name] /tool_main.swf ”。

现在,“tool_main.swf”加载得很好 问题是“tool_main.swf”需要加载位于其文件夹中的其他文件,所以例如它尝试加载“config.xml”,但是Flash没有查找“config.xml” “在工具的专用文件夹中 - 而不是在根文件夹”/“中找到”auto_magic.swf“所在的文件,可能是因为电影的主swf来自那里。

为了使它更糟糕,我无法修改工具的SWF(“tool_main.swf”),因为它来自第三方。

有什么解决方案吗?据我所知,我需要其中一种解决方案;
  1。能够设置加载的swf的基本网址
  2。 * 在运行时更改 *整个电影的基本网址,因为它需要从不同的文件夹中加载多个工具。

尝试解决这个问题几个小时。帮助将受到高度关注!

1 个答案:

答案 0 :(得分:2)

相对路径始终相对于主swf存在的位置。因此,当您的负载链扩展时,'/'始终引用Main.swf的位置。

在AS2中,您可以检查swfs _url属性以确定其完全限定的URL位置,并确定其父文件夹。

在AS2子swf中,您可以使用:

var myfolder = this._url.slice(0, this._url.lastIndexOf('/') + 1);

然后使用它来加载相对于自身的其他资产。

希望有所帮助。