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

Posted

技术标签:

【中文标题】ActionScript 2 加载另一个加载其他文件的 SWF - 相对路径/url 问题【英文标题】:ActionScript 2 load another SWF that loads other files - relative path/url problem 【发布时间】:2011-05-10 12:49:21 【问题描述】:

先说几个事实: 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 的基本 url 2. *更改*整个电影在运行时的基本网址,因为它需要从不同的文件夹加载多个工具。

尝试解决这个问题好几个小时。我们将非常感谢您的帮助!

【问题讨论】:

只有四个视图呃 - 太令人沮丧了。如果你也讨厌 Flash,请点赞 (: 【参考方案1】:

相对路径总是相对于主 swf 所在的位置。因此,当您的负载链扩展时,“/”总是指 Main.swf 的位置。

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

在 AS2 子 swf 中,可以这样使用:

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

然后使用它来加载与其自身相关的更多资产。

希望有帮助。

【讨论】:

感谢您的尝试,是的,这是 Flash 中最接近的一种。

以上是关于ActionScript 2 加载另一个加载其他文件的 SWF - 相对路径/url 问题的主要内容,如果未能解决你的问题,请参考以下文章

将 SWF 加载到 ActionScript 3 项目中 (Flex Builder)

使用 Actionscript 2 在背景层加载视频剪辑

Flash ActionScript 3 运行时安全错误

Actionscript 2的简单预加载程序设置

使用ActionScript生成FLV视频文件

Actionscript 3 - 在我的 swf 中加载另一个 swf 时出现列表错误