【发布时间】:2011-12-06 15:33:49
【问题描述】:
如release notes 中提到的 Flash Player 11,开发人员添加了 LZMA 压缩支持。
问题是如何启用这种支持?也许有一个 mxmlc 选项?还是更多步骤?
简单地设置 -swf-version=13 并在 sdk 中切换 playerglobal.swc 对我不起作用。
【问题讨论】:
标签: apache-flex flash lzma
如release notes 中提到的 Flash Player 11,开发人员添加了 LZMA 压缩支持。
问题是如何启用这种支持?也许有一个 mxmlc 选项?还是更多步骤?
简单地设置 -swf-version=13 并在 sdk 中切换 playerglobal.swc 对我不起作用。
【问题讨论】:
标签: apache-flex flash lzma
使用-swf-version=13 参数编译的 SWF 自动支持 LZMA 压缩,这意味着可以在运行时加载 LZMA 压缩的 SWF 文件,但是 Flash Builder(从 4.5.1 开始)输出的 SWF 仍然使用默认的 zlib 压缩进行压缩.
Tinic Uro,Flash 的开发者之一,wrote a utility 将 SWF 文件从默认的 zlib 压缩转换为 lzma。这需要在编译后作为附加步骤完成,至少在 Flash Builder 开始支持 LZMA 输出之前。
更新(澄清):
无论您使用什么选项,flex SDK 都不会输出 LZMA 压缩的 SWF 文件,这就是需要该实用程序的原因。 'swf-version' 编译参数告诉 SDK 输出 Flash 11 SWF。这不是否意味着SWF是用LZMA压缩压缩的,只是能够使用它。要点是 Flash 11 能够支持 LZMA 压缩 SWF,但您需要做额外的工作才能真正制作 LZMA SWF。
【讨论】:
-debug、-target-player 和-swf-version 的不同组合编译我的项目,并尝试相应地更改 SDK (4.5.0.20967) 中的“flex-config.xml” - 并且生成的 swf 大小不依赖于在-swf-version 参数上。然而,提供的实用程序生成的 swf 更小。
我写了一个Python script,它将根据 Tinic 的代码进行这种转换。如果您不在 Windows 上,它会更容易使用。
【讨论】: