我正在尝试在 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()