调用数据组的子方法

时间:2011-05-02 19:33:12

标签: flash flex actionscript-3 flex4

我正在寻找一种方法来为DataGroup中的DataGroup的所有子元素调用方法。问题是当使用creationComplete事件来调用子方法时,该方法仅针对每个itemrenderer(子)对象调用一次。在项目被绘制一次之后。

现在我希望子组件在每次包含它的数据组更改其数据时调用一个函数。在children(itemrenderer)组件中使用“updateComplete”或“dataChange”可以工作,但每次更改视图时都会调用“updateComplete”和“dataChange”(例如滚动我的列表) - 这不是我想要的。

//编辑我也尝试通过parent.dataprovider数组和parent.getchild数组来获取子进程没有运气,这就是元素为空但是当我检查调试模式时它们不是。但是,无论如何都必须有一个更简单的方法。

1 个答案:

答案 0 :(得分:0)

听起来你对DataGroup的工作原理有误解。

DataGroup接受dataProvider属性;并且dataProvider将实现iList接口。公共dataProviders可能是ArrayCollection或XMLListCollection。

为了便于解释,我们假设dataProvider中有100个项目。

DataGroup将查看它有多少可视空间来显示项目;并创建itemRenderer的许多实例。对于相同的解释,假设DataGroup中显示了7个元素。

因此,在这种情况下,DataGroup有七个子节点,即使dataProvider中有100个元素。

滚动数据组时,每个渲染器都会重复使用。 DataGroup永远不会超过七个孩子。

DataGroup没有data属性,因此每当数据更改时针对DataGroup运行代码有点令人困惑。每次DataGroup的dataProvider更改时,您都应该能够运行代码,方法是扩展和覆盖set dataProvider方法,或者向dataProviderChanged事件添加事件处理程序。所有可绑定属性都会触发一个类似命名的事件,即使它们没有明确记录。

这有帮助吗?如果没有,也许您需要以更具体的术语告诉我们您想要做什么。