乍一看,Repeater控件看起来非常强大,但现在我有了第二个想法.
手头的问题:向孩子们添加事件监听器
Repeater对象绑定并遍历ArrayCollection,为每个项创建新的Vbox子级.现在,对于每个子节点,Repeater对象将触发"重复"事件,我很想添加eventlistener(用于鼠标事件).到目前为止没有问题,但是,当ArrayCollection发生变化时会发生什么,我应该如何删除所有旧子节点的EventListener?是否有一些包含我的Vbox实例的子项,我正在文档中跳过?eventlisteners在它们所附着的对象被销毁时是否能够很好地清理?
-C编码器在flex/actionscript中丢失
我会完全避免使用中继器.从性能的角度来看,它们非常慢,因为这些项目经常被破坏和重新创建.最好使用基于List的控件并实现itemRenderer.
默认情况下,事件侦听器是强引用,因此如果不删除事件侦听器,它将阻止对象被垃圾回收.您可以在addEventListener中使用名为"weakReference"的可选5th参数,并将值设置为true以添加不会阻止GC的事件侦听器.
为了更好地处理itemRender组件中的事件,您可以实现IDropInListItemRenderer接口.这将使您可以访问"listData",它具有"owner"属性,该属性是实际的List对象本身.在itemRenderer中,通过所有者调度包含必要数据的自定义事件.如果在创建后将事件侦听器添加到List控件,则可以在包含该控件的组件中执行事件处理.