代码之家  ›  专栏  ›  技术社区  ›  Poni

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

  •  3
  • Poni  · 技术社区  · 14 年前

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

    我有一个作为选择工具的加载程序SWF(“ 汽车魔术.swf ") 位于“/” 在网站(根文件夹)中。
    用户选择所需的工具(这是一个机械诊断系统)并加载主影片(当前我使用loadMovie()-如果需要,建议其他)。
    工具位于“ /tools/[工具名称]/tool\u main.swf ".

    现在,“tool_main.swf”加载正常。
    问题是 “tool_main.swf”需要加载位于其文件夹中的其他文件 例如,它试图加载“config.xml”,但Flash并没有在工具的专用文件夹中查找“config.xml”,而是在根文件夹“/”中查找该文件,其中“auto_magic.swf”位于该文件夹中,可能是因为电影的主swf来自该文件夹。

    更糟糕的是,我不能修改工具的SWF(“tool_main.SWF”),因为它来自第三方。

    有什么解决办法吗?在我看来,我需要这些解决方案之一;
    一。 能够 设置加载的swf的基url .
    2。 * 改变 *整个 运行时电影的基本url 因为它需要从不同的文件夹加载多个工具。

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

    1 回复  |  直到 14 年前
        1
  •  2
  •   gthmb    14 年前

    相对路径总是相对于主SWF存在的位置。因此,随着负载链的扩展,“/”总是指Main.swf的位置。

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

    在AS2子swf中,可以使用:

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

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

    希望能有所帮助。