最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
为MXItemRenderer添加自定义状态
时间:2022-06-28 22:12:32 编辑:袖梨 来源:一聚教程网
但在项目渲染器中添加了自定义状态后,默认状态会覆盖原有状态,保留不了新增状态,因而会出现项目渲染器界面错乱的问题(如实例中第一个MX DataGrid)。怎么解决这一个问题呢?
首先要找到问题所在,幸好Flex SDK是开源的,我们可以很方便地查看源码。打开ItemRenderer.as,找到getCurrentRendererState()方法。查看其注释,提到很重要的一点:如果所需的行为与默认行为不同,则ItemRenderer的子类必须覆盖此方法以返回值。再查看ItemRenderer子类MXAdvancedDataGridItemRenderer和MXItemRenderer的源码,根本就没有getCurrentRendererState()重载该方法。这就导致在MX DataGrid和MX AdvancedDataGrid添加项目渲染器状态会出问题。但在Spark组件中添加状态没有这个问题,因为它们用的是ItemRenderer基类。
明白了这个原理,问题也就迎刃而解了。在自定义的渲染器组件中添加如下面的代码:
| 代码如下 | 复制代码 |
|
override protected function getCurrentRendererState():String |
|
为什么不加上返回默认状态的代码呢?那是因为项目渲染器的子类会继承父类的状态,因此返回currentState的值其实已经包含了返回默认状态值,当然也包括了新增的自定义状态值。
点击此处查看该实例最终效果,点击此处下载该实例的源码。
使用MXItemRenderer主要是为了兼容MX组件,建议尽量使用相应的Spark组件来代替。当然对于MX AdvancedDataGrid和MX Tree,大家也不用太担心,这个问题只在Flex 4.0/4.1中存在,Flex 4.5及其以上版本已经重写了ItemRenderer类,不存在这个问题
相关文章
- 功夫熊猫:神龙大侠官网首页入口 功夫熊猫:神龙大侠官方网站 04-08
- 问剑长生官方网址 问剑长生首页入口 04-08
- 对决!剑之川官网首页入口 对决!剑之川官方网站 04-08
- 剑中官方网页入口 剑中首页入口 04-08
- 暗区突围:无限官方网站入口 暗区突围:无限官方网页版 04-08
- claudeCode官网入口 claudeCode官网中文版地址 04-08