【发布时间】:2012-04-04 12:28:04
【问题描述】:
关于 ItemRenderers 的问题:假设我有一个 ArrayCollection,它是位于全局对象中的应用程序数据。我用这些数据填充了一个火花列表,将 ArrayCollection 设置为 dataProvider。
因此,每个 ItemRenderer 都会获得位于数组中的项目的副本。您可以覆盖“设置数据”方法以将数据设置为更特定于域的内容。问题是数据是原始项目的副本。
现在假设我们想在 ItemRender 中向项目添加一些数据。例如,它可以在项目上调用一个方法,告诉它加载有关自身的一些详细信息,或者我们允许用户修改项目上的某些内容。
显然,如果我们对副本进行操作,我们将无法执行任何操作,因为一旦 ItemRenderer 被销毁并且原始对象对发生的事情一无所知,它将被丢弃。
那么最佳做法是什么?我是否应该只使用渲染器的 itemIndex 从我的全局数组中提取原始项目,如下所示:
{globalArrayCollection}.getItemAt(this.itemIndex)
但这对我来说似乎有点笨拙。是否有处理此问题的最佳做法?
【问题讨论】:
标签: actionscript-3 apache-flex flex4.5 flexbuilder