0

覆盖IGridItemRenderer.prepare()功能并做一些事情。

override public function prepare(hasBeenRecycled:Boolean):void
{
  cb.selected = grid.selectionContainsIndex(rowIndex);//cb is CheckBox itemrenderer
}

什么时候调用这个准备函数?多少次?它有什么作用?在调试时我注意到这个方法被连续调用,重写这个方法有没有性能问题?

4

1 回答 1

2

在 flex 中,项目渲染器由框架自动构建、销毁和回收。它试图回收以前未使用的对象以节省资源。

当项目渲染器受到新行、单元格、对象、...的影响时,会调用 prepare

您可以使用它来初始化一些标签、字段、...

如果在调试中您注意到“持续调用”,则可能是由于以下工作流程: - 项目获得焦点,框架调用 prepare() - 您的 IDE 停止在该方法中,然后您的应用程序失去焦点 - 一旦您完成调试,您的应用程序重新获得焦点,然后调用 prepare 方法,-等等,...

最终,您可以使用与 {data.myFields} 的绑定来在数据对象受到影响时自动显示值(通过 prepare 方法静默),否则您将覆盖此方法以准备一些要显示的属性。

在性能方面,一切都应该相似。

HIH

于 2013-01-21T14:07:44.620 回答