1

我刚刚注意到 Haxe (openFL) 在使用 @:file 标签(或 openfl.Assets)时将单个嵌入文件的大小限制为 16MB。Flash/Flex 可以直接嵌入更大的文件。我解决问题的方法是将一个大文件拆分为几个较小的文件,并在运行时将它们组合起来。但这有时不是那么方便。那么有没有更好的方法来绕过 Haxe 中的这个限制?

4

1 回答 1

2

首先,嵌入这么大的文件通常不是一个好主意:

  • 二进制大小很大
  • 会减慢编译速度(因为您每次都需要复制粘贴大量数据
  • 在应用程序运行时,此数据被强制存储在 RAM/swap 中

但是,说到解决确切的问题......我不确定 swf 是否允许嵌入这么大的数据块(需要查看字节码规范),但无论如何似乎存在限制,因为ocaml 对字符串大小的内部限制。我相信它可以修复,但是您需要重写 haxe swf 生成器的一部分。

如果您不想修复编译器(如果 swf 不允许嵌入这么大的块,这可能是不可能的),那么您可以只使用一个简单的宏,它将透明地将您的文件分成几部分,嵌入和在运行时重新组装。

于 2015-02-10T08:25:42.793 回答