apache-flex - Mxmlc 在同一源上生成不同的二进制文件

标签 apache-flex mxmlc

我正在使用 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/

相关文章:

apache-flex - 在 Flex 中获取绝对本地路径

flash - Adobe Flash iOS 打包程序在打包大型项目时抛出 java.lang.OutOfMemoryError

apache-flex - flex 似乎没有与自定义 ActionScript 对象绑定(bind)

java - 在 Java 中调用的 Flex 编译器 mxmlc 导致 64 位 JVM 崩溃 (dcpr.dll)

apache-flex - 发布版本的 mxmlc 属性

algorithm - AS3仅渲染附近的物体

apache-flex - {variable} 在 flex 中做了什么

ant - 如何让 Flex Builder 3 生成两个版本 : one "-use-network=true", 另一个 "-use-network=false"?

apache-flex - 我无法让 MXMLC 在 Ubuntu 上工作

actionscript-3 - Flash Player 11 中的 Stage3D 不显示