最新下载
热门教程
- 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类,不存在这个问题
相关文章
- 烟雨江湖:雪夜听风动任务全流程指南 05-25
- 蚂蚁森林神奇海洋2026年5月7日正确答案揭晓 05-25
- 表格怎样筛选带颜色的单元格 05-25
- 小鸡守卫鸡天使打法指南-小鸡守卫鸡天使通关技巧全解析 05-25
- 球比伦战记-沉思者角色介绍指南 05-25
- 烟雨江湖暗器风云任务攻略:暗器风云任务完成步骤详解 05-25