我想在Flex中使用resourceManager進行一些本地化。我遇到了一個奇怪的問題,它在我嘗試使用的第一個文件中工作正常,但在第二個文件中它甚至不會編譯。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()
做一類擴展的東西,可以訪問到ResourceManager,而其他不?你是否在第二課中定義了resourceManager?用你已經顯示的短代碼片段很難說。 – JeffryHouser 2012-07-17 20:16:20
這兩個文件都不會擴展任何處理resourceManager的內容。我沒有明確地在任何一個文件中定義resouceManager,ResourceBundle已經這樣做了,如[示例](http://livedocs.adobe.com/flex/3/html/help.html?content=l10n_4.html) 。我沒有發佈完整的代碼,因爲它有很多,我不認爲它的大部分是相關的。 – 2012-07-17 21:22:37
沒關係,你是對的。一個類導入ComboBox,它作爲UIComponent已經有一個resourceManager。 – 2012-07-17 22:51:20