2015-02-10 27 views
1

我剛剛注意到,使用@:file標記(或openfl.Assets)時,Haxe(openFL)將單個嵌入文件的大小限制爲16MB。 Flash/Flex可以直接嵌入更大的文件。我解決問題的方法是將一個大文件拆分爲幾個較小的文件並在運行時將它們合併。但有時這並不方便。那麼是否有更好的方法繞過Haxe這個限制?更好的方法來繞過Haxe 16MB嵌入文件大小限制?

回答

2

首先,嵌入這個大尺寸的文件一般是不是一個好主意:

  • 二進制文件的大小是巨大的
  • 被減慢編譯(因爲你需要copypaste數據的相當大的量每
  • 這個數據被強制存儲在RAM /交換時間,同時應用程序運行

但是,解決了確切的問題發言......我不能完全肯定,如果SWF允許ŧ嵌入這些大塊數據(需要查看字節碼規範),但無論如何,由於ocaml內部限制了字符串大小,似乎限制是存在的。我相信它可以是固定的,但是你需要重寫haxe swf generator的一部分。

如果你不想修復編譯器(如果swf不允許嵌入這個大塊,這可能是不可能的),那麼你可以使用一個簡單的宏,它將透明地切入你的文件零件,在運行時嵌入和重新組裝。