如何通过优化代码来减少SWF文件大小?

时间:2011-01-26 17:52:01

标签: flex optimization flash filesize

考虑到我们已经做了以下行动:

  • Flex Framework as RSL
  • 使用debug = false
  • 进行编译
  • 在运行时加载大多数图像
  • 使用闪光绘制功能绘制其他简单图像
  • 使用pngquant缩小复杂图像
  • 为次要功能创建模块
  • 将范围应用于字体
  • 运行FlexPMD以查找死代码和错误的复制粘贴
  • 运行FlashOptimizer和secureSWF(效果不佳)

今天我们的申请是1358k:

  • 代码:978k - 72%
  • 图片:270k - 20%
  • 字体:110k - 8%

我们相信我们花了很多时间进行资产优化,大部分工作都留在代码上。 通过分析我们的链接报告,我们猜测代码的重要部分来自Flex .mxml嵌套组件。我们认为我们的纯AS类没有太多工作要做。

为了减少代码对swf文件大小的影响,是否有任何分析或编码最佳做法?

感谢。

以下是申请:http://www.pearltrees.com/nicolas/137698/

3 个答案:

答案 0 :(得分:3)

在我的练习中,我通常没有大的最终swf文件,所以我只想提一件事。直接使用 mxmlc ,我们不应忘记添加(当然最终构建)参数/属性

  

debug =“false”

以其他方式,最终的swf几乎会增加2倍。

答案 1 :(得分:2)

.mxml中是否有一个彼此相似的对象,您可以将它们转换为泛型类并以编程方式自定义?

答案 2 :(得分:1)

考虑查看预加载器和模块。

在不了解您的应用程序的情况下,很难具体,但custom preloader有时可以帮助您了解下载时间。让我们面对现实,要求用户无所事事地盯着进度条很难过,你可以做得更好。

这里的通常示例是您需要您的应用程序用户登录,或者在跳转到主应用程序之前选择一些基本细节。通过将第一个表单作为预加载器实现,您的应用程序将在用户与该表单交互时继续在后台下载。

缺点:您的预加载器代码无法访问所有Flex优点。您必须绘制UI并在普通的旧AS3中实现交互。不过,在某些情况下,额外的工作是值得的。

Flex模块是值得研究的另一件事。在复杂的Flex应用程序中,并非所有内容都是常用的。如果从主应用程序中删除较少使用的位并将它们移动到module you load on-demand,则可以从初始下载大小中保存相当数量的字节。