我有一个只有几个图形和大量ActionScript 3的项目。 有没有关于减少SWF文件大小的提示?
答案 0 :(得分:4)
要做的第一件事就是打开尺寸报告(不要使用Flash,但应该在发布设置中)并查看真正占用该空间的内容。根据你的描述,它应该主要是在actionscript中。
如果您有任何包含嵌入字体的动态或文本字段,请注意您只嵌入所需字符的子集,如果您使用的是位图,请确保使用适当的压缩(对于'computery',无损实际上更好图像,大量纯色或简单的渐变色。)
至于减少actionscript字节大小...首先尝试显而易见的事情:使用发布或测试而不是调试(Shift-F12或Ctrl-Enter,而不是Ctrl-Shift-Enter)来编译发布代码,仔细检查没有flash内置函数可以使用而不是actionscript,使用函数来共享代码,添加局部变量来减少常见的子表达式。
您可以尝试避免使用动态对象或更多地使用它们...每个类都有其描述的开销,但我认为它们可能会减少成员访问的开销。不过,我没有对此进行过任何测试。
修剪或复制您正在使用的其他库中的任何方法。如果你正在使用Flex ...对不起,你很健康:(。注意引入一大堆未使用的类的类引用:在这里制作一个修剪过的私有库副本也很有用。
如果您愿意牺牲代码质量:您可以尝试使用类成员而不是深度调用heirachies的参数。注意内部功能 - 有一些情况会导致膨胀。由于包含名称(一次),即使使用较短的包,类和成员名称(不是参数或本地),也不使用文字而不是常量,因此只需要发出值,而不是成员名称(我不确定)关于私人会员,或密封课程。)
答案 1 :(得分:3)
图形应该始终是文件膨胀的第一个嫌疑人。如果您有图像,请降低质量或尺寸,或查看不同的格式是否会产生较小的文件大小。不要复制粘贴矢量图,将它们放在影片剪辑或图形中,然后将其放在其他地方。此外,如果您有任何复杂的矢量艺术,平滑可以帮助降低其复杂性。
可以减少动作脚本,就像减少任何其他代码一样。寻找重复和其他可以切除的地方。但老实说,文件大小不受代码的影响。
有些相关问题:Why does my SWF file size not decrease when reducing content?
答案 2 :(得分:2)
运行时共享库
答案 3 :(得分:1)
你可以做几件事......
将图片保存为外部链接并动态加载(有权衡)
检查SIZE REPORT,跟踪并减少大型嵌入文件
答案 4 :(得分:0)
增加图形的压缩(例如降低jpg质量)并查找未使用的部分代码,看看是否可以修剪或重构。