【问题标题】:ActionScript 2 load another SWF that loads other files - relative path/url problemActionScript 2 加载另一个加载其他文件的 SWF - 相对路径/url 问题
【发布时间】: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,请点赞 (:

标签: actionscript-2


【解决方案1】:

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

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

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

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

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

希望有帮助。

【讨论】:

  • 感谢您的尝试,是的,这是 Flash 中最接近的一种。
猜你喜欢
  • 1970-01-01
  • 2013-04-12
  • 2011-04-04
  • 2016-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多