0

我正在尝试在 Flex 中使用 resourceManager 进行一些本地化。我遇到了一个奇怪的问题,它在我尝试过的第一个文件中运行良好,但在第二个文件中它甚至无法编译。

两个文件都有

import mx.resources.ResourceBundle;

在顶部和

[ResourceBundle("Hurley")]

在类定义之上。第一个编译得很好,并在运行时正确地从资源中提取文本。

第二个文件(在同一个项目但不同的文件夹中)将无法编译,并且每次提到 resourceManager 都会给出错误“1120:未定义属性资源管理器的访问”。

对于两种不同的用途:

在有效的文件中:

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 回答