Flex 链接:为什么我的 swf 文件的大小小于 swc 文件的总和?

问题描述 投票:0回答:3

这是一个愚蠢的问题。我使用多个 SWC(库)编译 Flex 应用程序,并创建一个 swf 文件。 swc 的总和大约为 4 MB,但实际生成的 swf 仅 1.6 MB。这怎么可能?

apache-flex linker
3个回答
6
投票

编译器仅编译应用程序所需的 SWC 中的类,除非您指定要“嵌入”哪些类。因此最后的 swf 尺寸较小。


2
投票

稍微扩展一下 PeZ 的响应,通常使用“库路径”编译器参数向 Flex 应用程序编译器提供 SWC:

库路径路径元素[...]

将 SWC 文件链接到生成的应用程序 SWF 文件。编译器仅链接 SWC 文件所需的那些类。您可以指定一个目录或单个 SWC 文件。

您可以使用“include-libraries”代替:

include-libraries 库 [...]

将 SWC 文件内的所有类链接到生成的应用程序 SWF 文件,无论是否使用它们。

将此选项与仅包含编译时引用的类的库路径选项进行对比。

您通常需要使用“库路径”来帮助保持 SWF 的大小尽可能小。但是,如果您的应用程序仅通过反射从 SWC 实例化类,您可能需要使用“include-libraries”。由于这些类实际上并未链接到应用程序中,因此如果您使用“库路径”引用 SWC,它们将不会被包含在内,并且您将在实例化期间收到运行时错误,因为该类型不可用。但是,如果您使用“include-libraries”,该类(以及 SWC 中的所有其他类)将可供应用程序使用。


0
投票

1) 在 swf 文件中仅包含必需的类
2)更多的文件会产生额外的标头信息,这也会稍微增加大小。
要减小 Flex swf 的大小,您可以使用本文中提到的这些技术:
http://askmeflash.com/article_m.php?p=article&id=9

© www.soinside.com 2019 - 2024. All rights reserved.