我刚刚注意到 Haxe (openFL) 在使用 @:file 标签(或 openfl.Assets)时将单个嵌入文件的大小限制为 16MB。Flash/Flex 可以直接嵌入更大的文件。我解决问题的方法是将一个大文件拆分为几个较小的文件,并在运行时将它们组合起来。但这有时不是那么方便。那么有没有更好的方法来绕过 Haxe 中的这个限制?
问问题
167 次
1 回答
2
首先,嵌入这么大的文件通常不是一个好主意:
- 二进制大小很大
- 会减慢编译速度(因为您每次都需要复制粘贴大量数据
- 在应用程序运行时,此数据被强制存储在 RAM/swap 中
但是,说到解决确切的问题......我不确定 swf 是否允许嵌入这么大的数据块(需要查看字节码规范),但无论如何似乎存在限制,因为ocaml 对字符串大小的内部限制。我相信它可以修复,但是您需要重写 haxe swf 生成器的一部分。
如果您不想修复编译器(如果 swf 不允许嵌入这么大的块,这可能是不可能的),那么您可以只使用一个简单的宏,它将透明地将您的文件分成几部分,嵌入和在运行时重新组装。
于 2015-02-10T08:25:42.793 回答