0

一部のローカリゼーションにFlexでresourceManagerを使用しようとしています。私が試した最初のファイルでは正常に動作するという奇妙な問題がありますが、2番目のファイルではコンパイルすらできません。

両方のファイルには

import mx.resources.ResourceBundle;

上部と

[ResourceBundle("Hurley")]

クラス定義の上。最初のものは正常にコンパイルされ、実行時にリソースからテキストを正しくプルします。

2番目のファイル(同じプロジェクトにありますが、フォルダーが異なります)はコンパイルされず、resourceManagerに言及するたびに、「1120:未定義のプロパティresourceManagerへのアクセス」というエラーが発生します。

2つの異なる用途の場合:

動作するファイル内:

public function SeasonsComboBox() {
    this.labelFunction = function(obj:Object):String {
        return resourceManager.getString('Hurley','Season_word') + " " + obj.number;
    };
}

そして、機能しないファイル:

public function getCarousels(seriesId:String, callback:Function):void {
    [...]
    ExternalInterface.addCallback("getCarouselsFailure", function():void {
            Alert.show(resourceManager.getString('Hurley','CarouselsFailure_text'), "Error", Alert.OK);
        });
    [...]
    }

どちらのファイルでも、私がしたこととは何も違うことは考えられません。

編集、解決済み:

resourceManagerは、すべてのUIComponentサブクラスで定義されています。動作したファイルはComboBoxをインポートしました。そうしなかったファイル。これらのファイルでは、次のように呼び出すことで機能させることができます。

ResourceManager.getInstance()

詳細については、http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/resources/IResourceManager.htmlをご覧ください。

4

1 に答える 1

3

reourceManagerプロパティにアクセスできない理由は、おそらく定義されていないためです。

これはUIComponentで定義されているため、UIComponentを拡張するクラスはそれを定義します。ただし、それ以外の場合は、自分で定義する必要があります。

次のようなものを使用してこれを行うことができます。

public var resourceManager:ResourceManager = ResourceManager.getInstance();
于 2012-07-17T23:03:35.900 に答える