0

我在这样定义的导航器中有几个不同的选项卡:(删除了特定于客户端的域)

<s:NavigatorContent xmlns:fx="http://ns.adobe.com/mxml/2009" 
                    xmlns:s="library://ns.adobe.com/flex/spark" 
                    xmlns:mx="library://ns.adobe.com/flex/mx"
                    xmlns:container="com.*****.shop.admin.container.*"
                    width="100%" height="100%"
                    implements="com.*****.common.container.IScreen"
                    xmlns:services="com.****.shop.admin.services.*"
                    label="Service Types">

我有不同语言环境的资源包,en_US 看起来像这样:

ServicesScreen.label=Service Types

当我尝试这样做时,它不起作用:

...    
... 
label="{resourceManager.getString('resources','ServicesScreen.label')}"

我没有得到我的资源包条目,而是在我的 GUI 中看到一些奇怪的东西,例如:

Shop0.ShopSkin9._ShopSkin_Group1.contentScroller.ScrollerSkin13.contentGroup.vsMain.AdminView154.SkinnableContainerSkin159.contentGroup.subNavItems.opCodeScreen

我的资源包在其他情况下也可以工作,例如表单输入字段旁边的标签等。但是,代码可以编译,实际上并没有抛出任何错误(编译或运行时)。我尝试将值分配给一个变量并在标签字段中使用该变量,但这会导致编译错误。

我尝试在组件的创建完成时调用 setter 方法,但这也没有解决问题。

如何本地化我的标签标签,我可以在运行时动态地这样做吗?

谢谢你的时间!

4

1 回答 1

0

我想我会自己回答这个问题,尽管归功于 Sunil D。我不知道为什么在我测试时它没有早点工作,我第一次肯定错过了一些东西,但是这里有。首先我补充说:

creationComplete="init(event)">

然后在那个方法体中我做了:

    protected function init(event:FlexEvent):void
    {
        this.label = resourceManager.getString('resources','opCodeScreen.title');
    }

它就像一个魅力。老实说,我很确定我今天早上做了同样的测试,但我猜不是。Sunil 如果您想让您的评论成为答案,我会继续接受它。

编辑:在运行时更改文本,添加currentStateChange调用上述方法

干杯!

于 2013-01-10T19:02:31.403 回答