我试图在Flex中使用resourceManager进行一些本地化。我遇到了一个奇怪的问题,在我尝试过的第一个文件中,它运行得很好,但是在第二个文件中,它甚至不会编译。
两个文件都有
import mx.resources.ResourceBundle;在最上面
[ResourceBundle("Hurley")]在类定义之上。第一个程序编译良好,并在运行时正确地从资源中提取文本。
第二个文件(在同一个项目中,但位于不同的文件夹)不会编译,每次提到resourceManager都会出现"1120:访问未定义的属性resourceManager“的错误。
用于这两种不同用途:
在起作用的文件中:
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()这里有更多信息:US/FlashPlatform/reference/actionscript/3/mx/resources/IResourceManager.html
发布于 2012-07-17 23:03:35
不能访问reourceManager属性的原因是它可能没有定义。
它是在UIComponent中定义的,所以任何扩展UIComponent的类都要定义它。但是,否则你必须自己定义它。
您可以这样做:
public var resourceManager:ResourceManager = ResourceManager.getInstance();https://stackoverflow.com/questions/11529002
复制相似问题