相对于服务器根目录加载Flex资源而不是.swf位置

时间:2008-10-20 20:28:49

标签: flex actionscript relative-path

我有一个大的(700kb)Flex .swf文件,代表一个站点的主文件。

对于性能测试,我想尝试将其移至Amazon S3托管(我已经使用某些视频和大文件)。

我继续这样做,并更新了html页面以引用远程.swf。

事实证明,Flash将加载相对于访问资源的.swf文件的任何资源 - 无论html页面的根目录是什么。所以我的资源现在从远程站点加载(它们不存在)。

我可以做两件明显的事情: *远程复制我的所有资源(因为我现在只是测试,所以没有准备好) *在.swf访问的每个URL中添加一些抽象层以获取新路径。

我真的想轻弹一个开关并说'加载与[原始服务器]相关的所有内容。

是否存在这样的事情,或者我是否因为完全符合每条路径而无法从远程计算机加载所有内容?

我想避免任何'hacky'之类的事情:子类Image并破解那里的路径

2 个答案:

答案 0 :(得分:1)

在您的网址之前附加一个斜杠,这应该相对于域而不是当前文件夹加载:

foo.load('/like/this/image.jpg')

这有点快,很脏,通过查询字符串(or the base parameter)提供“相对”网址会更灵活。

答案 1 :(得分:0)

您可以尝试指定SWF的嵌入/对象标记的base参数。从理论上讲,它定义了用于解析加载相对路径的基本路径,但我不知道如果base值指向SWF所在的不同服务器,它是否会起作用。

请参阅有关embed / object params here的文档。向下滚动到中间的“base”。

如果这不起作用,我看到人们做的另一件事是通过flashvars传递自定义基本路径。然后在SWF中检查是否定义了基本路径,如果是,则在加载之前将其添加到相对URL。