2009-09-24 26 views
0

Flex 3的问题的功能集标签:flex3:如何重写一个按钮

我想在这里,以避免资源绑定到我的所有部件标签(例如,一个按钮),并找到一种方法,有这样的自动化。

问题: 它破坏了设计模式下的布局,直接绑定到mxml label =“{resourceManager.getString('myResources','submit')}”,并使设计视图无用。但是当在其他地方声明绑定时,在actionScript或通过绑定标记时,它是反效果的并且容易出现许多错误和遗漏。

命题: 我想创建自己的按钮,自动调用资源来本地化按钮标签。因此,作者在我的按钮的mxml描述中放入了“Submit”,并在运行时将采用标签的值,即“submit”并使用resourceManager.getString('myResources','submit')。

但我无法找到重写设置标签功能的方式,如果是的话,可以吗?否则我该怎么办?

也许我错过了一个重要的过程,这将使资源的使用更加优雅,以及如何覆盖诸如按钮标签之类的东西。

感谢您的建议。

回答

2

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

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

假设资源管理器返回“空”或“不确定”这将工作,如果在“为MyResources”的存在只会替换值。

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

+0

谢谢! 祝您有美好的一天 – 2009-09-25 10:34:34