正在逐个加载swf



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

现在加载速度太慢,需要很长时间。所以我认为如果我一部分一部分地加载(像youtube)会更好。

但我不知道如何一部分一部分地加载。请帮我谈谈你的想法。

它不应该比一个接一个地加载SWF更好,这正是因为您的主SWF逻辑中存在未解决的依赖关系。你可以先让你的主SWF只加载关键模块,然后打开,不说声音或音乐可用,显示声音仍在加载、音乐仍在加载等信息,并开始加载这些模块,加载后,启动音乐或启用声音播放。

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

因此,我认为您应该首先确定您的主SWF是否能够在没有某些内容的情况下生存,将这些内容从主SWF中分离出来,并在应用程序中处理它们的间歇性不可用性。

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

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

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

加载SWF

最新更新