flex3:如何覆盖按钮的功能设置标签

时间:2009-09-24 08:14:08

标签: flex binding resources button label

Flex 3问题:

我在这里尝试避免将资源绑定到我的所有组件标签(即按钮),并找到一种方法来实现自动化。

问题: 它破坏了设计模式中的布局,直接绑定在mxml label =“{resourceManager.getString('myResources','submit')}”中,并使设计视图无用。但是当在别处,动作脚本或通过绑定标记声明绑定时,它会适得其反,容易出现许多错误并错过。

主张: 我想创建自己的按钮,自动调用资源来本地化按钮标签。因此,作者在我的按钮的mxml描述中添加“Submit”,并且在运行时将获取标签的值,即“submit”并使用resourceManager.getString('myResources','submit')。

但我找不到覆盖设置标签功能的方法,是否有可能如何?否则怎么办?

也许我错过了一个必不可少的过程,它可以使资源的使用更加优雅,以及如何覆盖按钮标签这样的东西。

感谢您的建议。

1 个答案:

答案 0 :(得分:2)

创建一个名为MyButton的组件,扩展Button。然后使用:

override public function set label(value:String):void {
  super.label = resourceManager.getString('myResources', value) || value;
}

假设资源管理器返回“null”或“undefined”,这将起作用,并且只会替换“myResources”中存在的值。

如果您不想覆盖需要执行此操作的每个组件,则可以在每个组件上添加FlexEvent.CREATION_COMPLETE事件。然后使用单个通用函数进行标签本地化。