逐个加载 swf

Loading swf part by part

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

现在加载速度太慢,网速慢。所以我觉得如果我部分地加载(比如youtube)会更好。

但是我不知道,如何逐个加载。 请帮我出出主意。

我猜 5MB swf 是主要 swf 的模块。因此,假设您的模块 swf A 包含一些大图像,可能有 20 个 png 文件,每个文件为 200K。尝试将图像文件放在服务器端并在加载模块 swf 时加载它们。需要quick才能让用户看到带有基本功能的swf模块(带有基本的ui元素,比如按钮),然后外部图片会慢慢的一个一个出现。

当你把你的png文件放在服务器端时记得压缩它们,比如pngoo

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

加载SWF

它应该不会比通过 SWF 加载 SWF 更好,这正是因为您的主要 SWF 逻辑中未解决的依赖关系。您可以让您的主 SWF 首先仅加载关键模块,然后在不提供声音或音乐的情况下打开,显示声音仍在加载、音乐仍在加载等信息,并开始加载这些,一旦加载,启动音乐或启用声音播放。

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

所以我说您应该首先确定您的主 SWF 是否能够在没有某些内容的情况下继续存在,将该内容从主 SW​​F 中分离出来并处理它们在您的应用程序中的间歇性不可用。