0

最も単純なFlexプロジェクトでは、MXML Flex Moduleを作成し、ModuleManagerを使用してロードします。問題ない。Moduleを拡張するActionScriptクラスを作成し、それをModuleにコンパイルするようにプロジェクトを構成します。代わりに、この新しいモジュールをロードしてください。プロジェクトはコンパイルされますが、実行時に次のエラーでクラッシュします。

「エラー:ロケール「en_US」のコンパイル済みリソースバンドル「コンテナ」が見つかりませんでした。」

コンパイラは、必要なクラス定義をActionScriptのみのモジュールにコンパイルできませんが、MXMLモジュールでは成功すると思います。スケルトンMXMLモジュールがActionScriptモジュールよりもわずかに大きいことがわかります(66KB対45KB)。

この問題をどのように解決できますか(それが実際に問題である場合)?

4

3 に答える 3

0

このような状況での適切なアプローチは、2つのプロジェクトに-keep-generated-actionscriptを使用することです。1つはmxmlアプローチを使用し、もう1つはactionscriptアプローチを使用します。次に、コードを比較して、あるプロジェクトには欠けているが、別のプロジェクトには含まれている可能性があるものを確認できます。

[ResourceBundle( "containers")]への明示的な参照をActionScriptプロジェクトクラスに追加してみましたか?mxmlcは、多くの正当な理由により、動作がcompcコンパイラとは異なります。

于 2010-09-22T08:13:19.080 に答える
0

私にとっての問題は、どのプロジェクト(私の場合はライブラリ)と、このライブラリのどのクラスがこの動作を引き起こしたかを見つけることでした(最後の変更を理解する必要がありました-flashbuilderからの情報はありません)。次に、次の属性をクラスに適用します。

[ResourceBundle("containers")]
public class IpChecker {
...

それでうまくいきました。

于 2012-03-05T17:44:08.880 に答える
0

ライブラリswcをコンパイルするときに、これと同じ問題が発生していました。プロジェクト projectName-config.xml に次のセクションを追加することで修正できました

    <include-libraries append="true">
        <library>${flexlib}/locale/{locale}/framework_rb.swc</library>
    </include-libraries>

これにより、指定されたロケールのフレームワーク リソース バンドルがコンパイラに強制的に含められます。

于 2011-04-27T22:18:16.677 に答える