相对于.swf位置,加载相对于服务器根的Flex资源



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

为了进行性能测试,我想尝试将其转移到AmazonS3主机上(我已经对某些视频和大文件进行了测试)。

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

事实证明,无论html页面的根是什么,Flash都会加载与访问资源的.swf文件相关的任何资源。所以我的资源现在是从远程站点加载的(它们不存在的地方)。

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

我真的很想轻按一下开关,说"加载相对于[原始服务器]的所有内容"。

这样的事情存在吗?还是我一直在从远程机器加载所有内容,除非我完全符合每条路径的条件?

我想避免任何"黑客"的东西,比如:子类图像和破解那里的路径

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

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

这有点快速和肮脏,通过查询字符串(或基本参数)提供"相对"url会更灵活。

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

请参阅此处的嵌入/对象参数文档。向下滚动至中间的"base"。

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

最新更新