Actionscript 3 在运行时本地化组件标签
我在导航器中有几个不同的选项卡,定义如下:(删除了特定于客户端的域) 当我尝试这样做时,它不起作用:Actionscript 3 在运行时本地化组件标签,actionscript-3,apache-flex,localization,tabnavigator,Actionscript 3,Apache Flex,Localization,Tabnavigator,我在导航器中有几个不同的选项卡,定义如下:(删除了特定于客户端的域) 当我尝试这样做时,它不起作用: ... ... label="{resourceManager.getString('resources','ServicesScreen.label')}" 我没有得到我的资源包条目,而是在GUI中得到一些奇怪的东西,如: Shop0.ShopSkin9._ShopSkin_Group1.contentScroller.ScrollerSkin13.contentGroup.vsM
...
...
label="{resourceManager.getString('resources','ServicesScreen.label')}"
我没有得到我的资源包条目,而是在GUI中得到一些奇怪的东西,如:
Shop0.ShopSkin9._ShopSkin_Group1.contentScroller.ScrollerSkin13.contentGroup.vsMain.AdminView154.SkinnableContainerSkin159.contentGroup.subNavItems.opCodeScreen
我的资源包在其他情况下工作,例如表单输入字段旁边的标签,等等。。。但是,代码是编译的,实际上不会抛出任何错误(编译时或运行时)。我尝试将该值赋给一个变量,并在label字段中使用该变量,但是这导致了一个编译错误
我尝试在组件创建完成时调用setter方法,但这也没有解决问题
如何本地化选项卡标签,以及如何在运行时动态进行本地化?
谢谢你的时间 我想我会自己回答这个问题,虽然这要归功于Sunil D。我不知道为什么在我测试的时候它不起作用,我第一次肯定错过了一些东西,但还是来了。首先,我补充说:
creationComplete="init(event)">
然后在这个方法中,我做了:
protected function init(event:FlexEvent):void
{
this.label = resourceManager.getString('resources','opCodeScreen.title');
}
它就像一个符咒。老实说,我很确定今天早上我做了完全相同的测试,但我想不是。Sunil如果你想回答我的意见,我会接受的
编辑:在运行时更改文本,添加调用预先连接的方法的currentStateChange
干杯 我看不出您的代码有任何问题,因此我唯一能想到的是,
resources
可能是某种保留字,您不能用于资源包名称。我曾经有过一个神秘的bug,命名我的bundlecomponents
,这与SDK中存在的同名bundle冲突。我将尝试更改它,但是我的bundle在使用名为resources.properties
的bundle时适用于所有其他条目,如图像、文本输入标签等。实际上,只有当涉及到在视图的“构造函数”中定义的属性时,才能使用setter方法。然后使用调试器逐步完成代码。如果您进入resourceManager.getString()
方法,您应该会看到发生了什么。
creationComplete="init(event)">
protected function init(event:FlexEvent):void
{
this.label = resourceManager.getString('resources','opCodeScreen.title');
}