@:file タグ (または openfl.Assets) を使用する場合、Haxe (openFL) が 1 つの埋め込みファイルのサイズを 16MB に制限していることに気付きました。Flash/Flex は、はるかに大きなファイルを直接埋め込むことができます。この問題を解決する私の方法は、1 つの大きなファイルをいくつかの小さなファイルに分割し、実行時にそれらを結合することです。しかし、これは時々あまり便利ではありません。Haxeでこの制限を回避するより良い方法はありますか?
1 に答える
2
まず第一に、このような大きなサイズのファイルを埋め込むことは、一般的には良い考えではありません:
- バイナリサイズが巨大
- コンパイルが遅くなります(毎回かなりの量のデータをコピーペーストする必要があるため)
- このデータは、アプリケーションの実行中に RAM/スワップに強制的に保存されます
しかし、正確な問題の解決について言えば... swfがこの大きなデータのチャンクを埋め込むことを許可するかどうかは正確にはわかりません(バイトコードの仕様を確認する必要があります)が、いずれにせよ制限があるようです文字列サイズの ocaml 内部制限の。修正できると思いますが、haxe swf ジェネレーターの一部を書き直す必要があります。
コンパイラを修正したくない場合 (swf がこの大きなチャンクの埋め込みを許可していない場合は修正できない可能性があります)、単純なマクロを使用するだけで、ファイルを部分的に透過的にスライスし、埋め込み、実行時に再構築します。
于 2015-02-10T08:25:42.793 に答える