2009-02-20 182 views
7

我有一个只有几个图形和很多ActionScript 3的项目。 任何人都有关于减少SWF文件大小的提示吗?减少SWF文件大小

回答

3

在文件膨胀的情况下,图形应始终是第一个可疑人员。如果您有图像,请降低质量或尺寸,或查看不同的格式是否产生较小的文件大小。请勿复制粘贴矢量图形,将它们放入影片剪辑或图形中,并放入其他位置。另外,如果你有任何复杂的矢量艺术,平滑可以帮助减少复杂性。

可以减少动作脚本,就像减少任何其他代码一样。寻找重复和其他可以剪掉的地方。但老实说,文件大小不受代码的影响。

有点相关的问题:Why does my SWF file size not decrease when reducing content?

0

增加图形压缩(如降低jpg质量)并查找未使用的代码部分,看看是否可以修剪或重构。

1

你可以做几件事情..

  • 图像另存为外部链接和动态加载那些(有一个权衡)

  • 检查大小的报告,跟踪和修剪下来大型嵌入式文件

4

第一件事要做的就是打开大小的报告(没有安装Flash得心应手,而应在发布设置),并看看什么是真正占用这个空间。从你的描述来看,它应该主要在动作中。

如果您有任何带有嵌入字体的动态或文本字段,请注意您只嵌入需要的字符子集,如果您使用位图,请确保使用适当的压缩(无损实际上更适合'computery '图像,大量的纯色或简单的渐变)。

至于减少动作字节大小......首先尝试一些显而易见的事情:使用发布或测试代替调试(Shift-F12或Ctrl-Enter,而不是Ctrl-Shift-Enter)来编译发布代码,仔细检查您可以使用Flash内置函数而不是ActionScript,使用函数共享代码,添加局部变量以减少常见的子表达式。

你可以尝试避免使用动态对象或更多地使用它们......每个类都有它的描述开销,但我认为它们可能会减少成员访问的开销。不过,我还没有测试过这种方式。

修剪或复制从其他库中使用的任何方法。如果你正在使用Flex ...对不起,你很漂亮:(注意参考类引入一大堆未使用的类:制作修剪后的私有库副本在这里也很有用

如果你愿意牺牲代码质量:你可以尝试使用类成员而不是参数来调用深层调用heirachies,注意内部函数 - 有一些情况会导致膨胀,因为名字被包含(一次),即使使用较短的包,类和成员名称(不是参数或本地),和文字而不是常量,所以只有值必须被发射,而不是成员名称(我不确定私人成员或密封类)。

2

运行共享库