绕过Haxe 16MB嵌入文件大小限制的更好方法是什么?

时间:2015-02-10 06:11:58

标签: embed haxe openfl

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

1 个答案:

答案 0 :(得分:2)

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

  • 二进制大小很大
  • 会降低编译速度(因为每次都需要对大量数据进行复制)
  • 在应用程序运行时,该数据被强制存储在RAM / swap中

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

如果您不想修复编译器(在swf不允许嵌入这个大块的情况下可能无法实现),那么您可以使用一个简单的宏,它会透明地将文件切片,在运行时嵌入并重新组装。