乍一看,Repeater 控件看起来非常强大,但现在我有了新的想法。
手头的问题:
为子级添加事件监听器
Repeater 对象绑定到 ArrayCollection 并对其进行迭代,为每个项目创建新的 Vbox 子项。现在,对于每个孩子,Repeater 对象将触发一个“重复”事件,我很想在其中添加事件侦听器(用于鼠标事件)。到目前为止没有问题,但是,当 ArrayCollection 更改时会发生什么,我应该如何删除所有旧子级的 EventListeners ?是否有一个包含我在文档中跳过的 Vbox 实例的子数组?当事件监听器所附加的对象被销毁时,事件监听器是否得到了很好的清理?
-C 编码器在 flex/actionscript 中丢失
我会完全避免使用中继器。从性能的角度来看,它们非常慢,因为项目经常被销毁和重新创建。您最好使用基于列表的控件并实现 itemRenderer。
默认情况下,事件侦听器是强引用,因此如果您不删除事件侦听器,则会阻止对象被垃圾收集。您可以在 addEventListener 中使用名为“weakReference”的可选第五个参数,并将该值设置为 true 以添加不会阻止 GC 的事件侦听器。
为了更好地处理 itemRender 组件中的事件,您可以实现 IDropInListItemRenderer 接口。这将使您能够访问“listData”,它具有“owner”属性,该属性是实际的 List 对象本身。在您的 itemRenderer 中,通过所有者调度包含必要数据的自定义事件。如果在创建 List 控件后向其添加事件侦听器,则可以在包含该控件的组件中执行事件处理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)