逐个加载swf

时间:2015-04-09 08:54:12

标签: actionscript-3 flash

基本上我们启动一个离线移动应用程序,它将动态加载和卸载swf文件。每个swf文件将超过5 MB,它可以用于离线版本。但他们现在要求网络版。

现在为慢速互联网连接加载时间过长。所以我想如果我逐个加载(比如youtube),它会更好。

但我不知道如何逐个加载。 请帮助我解决你的想法。

3 个答案:

答案 0 :(得分:1)

它不应该只是通过SWF加载SWF,这完全是因为主SWF逻辑中存在未解决的依赖关系。您可以先让主SWF加载至关重要的模块,然后在没有声音或音乐可用的情况下打开,显示声音仍在加载的信息,音乐仍在加载等等,并开始加载这些,并且一旦加载,启动音乐或启用声音播放。

YouTube播放器能够逐部分加载视频,因为视频的后续部分与当前播放的内容无关,而Flash应用程序则不然,这些部分需要完全加载才能正常工作,至少应首先加载主SWF以初始化其模块的加载并提供基本的用户体验。此外,IE11决定在未完全加载时停止显示SWF(没有可在运行时加载的其他模块),从而在SWF尚未完全加载时消除了人们的预加载器显示。

所以我说你首先要确定你的主SWF是否能够在没有一些内容的情况下生存,将这些内容从主SWF中分离出来并在你的应用程序中处理它们的间歇性不可用性。

答案 1 :(得分:0)

我猜5MB swfs是主swf的模块。因此假设您的模块swf A包含一些大图像,可能是20个png文件,每个文件是200K。尝试将图像文件放在服务器端并在加载模块swf时加载它们。用户可以快速查看具有基本功能的模块swf(使用基本的ui元素,如按钮),然后外部图像逐个显示。

请记住在将png文件放在服务器端时压缩它们,例如pngoo

答案 2 :(得分:0)

如果您的服务器可以部分提供文件,您可以将所有部件作为单独的ByteArray下载。之后,所有合并到一个ByteArray并通过methos Loader.loadBytes()加载SWF