我正在使用 mxmlc 将单个 .as 文件编译成 swf。
每当我运行 mxmlc 时,即使源代码未更改,结果的大小也会不同。
例如,
// Test.as
package
{
public class Test
{
}
}
并使用 mxmlc 生成 .swf:
mxmlc Test.as
结果大小从 461 到 465 字节不等。
我想这是因为编译器中有类似时间戳的东西,但我找不到如何修复或禁用它。关于生成“来自相同来源的相同二进制文件”的任何想法?谢谢!
最佳答案
最后,我发现元数据标签(标签类型 = 77)和未记录的“产品信息”标签(标签类型 = 41)都包含编译时间。
我通过以下步骤成功删除了时间戳:
1. open swf and un-zlib
2. clear timestamps in metadata tag and product info tag
3. re-zlib and make new .SWF
但我对此并不满意,因此这需要对 SWF 文件进行额外的处理。我想找到更简单的方法。 mxmlc 上可能有“绕过产品信息”选项。
您可以在 http://www.adobe.com/devnet/swf.html 上找到有关 SWF 文件结构和元数据标记的更多信息和产品信息 http://wahlers.com.br/claus/blog/undocumented-swf-tags-written-by-mxmlc/
关于apache-flex - Mxmlc 在同一源上生成不同的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5632318/