实现方法: 1、在探索阶段使用第一种方式的时候,会得到MyHorizontalList共有三个child,而我们就需要它的最后一个child。 即:MyHorizontalList.getChildAt( 2 ) 2、请大家一定要注意:它最后一个child是一个ListBaseContentHolder类型的变量,而ListBaseContentHolder是存在于mx.controls.listClasses.ListBaseContentHolder里面的。 因此我们需要手动引入如下的class: import mx.controls.listClasses.ListBaseContentHolder; var myHList : ListBaseContentHolder = MyHorizontalList.getChildAt( 2 ) as ListBaseContentHolder; 通过上面的代码就得到了myHList。(注意它的类型是:ListBaseContentHolder ) 3、ListBaseContentHolder里面有一个public method:listItems,它的定义如下: 原文:An Array of Arrays that contains the item renderer instances that render each data provider item. 翻译:一个由数组组成的 Array,其中包含用于显示dataProvider提供的项目渲染器实例。 通过上面的翻译不难看出,listItems就是我们要使用的method,即包含了MyItemRenderer的数组。
4、以下是的source就比较简单了: //得到MyRendererArr var MyRendererArr : Array = listBase.listItems[ 0 ] as Array ; //遍历MyRendererArr for ( var i : int = 0; i < MyRendererArr .length; i ++ ) { //每一个MyRendererArr[ i ]都是一个实例的MyItemRenderer var temp : MyItemRenderer= MyRendererArr [ i ] as MyItemRenderer; //即我想要的最终结果 temp.refresh(); }