什么是itemRenderer?
itemRenderer,可以理解为数据的表现方式,具体地说,是指显示每一条数据时采用的形式。在使用数据处理类组件时,我们只需要把数据按照一定的格式组织好,然后赋予给组件,剩下的事就不用费心了。
每一个组件都有默认的itemRenderer,比如List组件:
List组件默认的itemRenderer类似Label组件,只简单显示一行文本。如右图所示,红色方框选中的是一个itemRenderer。
本质上,itemRenderer和其它容器类组件没有区别,里面可以包括任意的可视化元素,包括文本、图片、视频等,只要是Flex支持的视觉元素,都可以。
自定义itemRenderer
组件默认的itemRenderer都过于简单,如果想加强表现力,就必须创建个性化的itemRenderer。
自定义itemRenderer有两种方式:一种是嵌入式,直接写在组件的标签中,所有的代码都集中在一个MXML文件中;另一种是把itemRenderer独立出来,形成一个MXML组件或ActionScript类。
itemRenderer可以很方便的对数据进行呈现,但有时候我们需要在组件和itemRenderer之间访问,怎么办呢?找到以下几种方法:
1、List可以通过dataGroup这个成员对象来访问下面的ItemRenderer,比如 userList.dataGroup.getChildAt(ii) as ItemRenderer。要注意要等list初始化后才能获取,不然userList.dataGroup.numChildren会为0。
2、在ItemRenderer中则通过owner这个对象来访问List。
3、可以通过发送事件的方式,这个网上比较多,大家可以参考http://www.cnblogs.com/aierong/archive/2009/02/11/ItemRenderer.html这篇文章。