当前位置:  开发笔记 > 编程语言 > 正文

Flex Repeater和EventListeners

如何解决《FlexRepeater和EventListeners》经验,为你挑选了1个好方法。

乍一看,Repeater控件看起来非常强大,但现在我有了第二个想法.

手头的问题:向孩子们添加事件监听器

Repeater对象绑定并遍历ArrayCollection,为每个项创建新的Vbox子级.现在,对于每个子节点,Repeater对象将触发"重复"事件,我很想添加eventlistener(用于鼠标事件).到目前为止没有问题,但是,当ArrayCollection发生变化时会发生什么,我应该如何删除所有旧子节点的EventListener?是否有一些包含我的Vbox实例的子项,我正在文档中跳过?eventlisteners在它们所附着的对象被销毁时是否能够很好地清理?

-C编码器在flex/actionscript中丢失



1> cliff.meyers..:

我会完全避免使用中继器.从性能的角度来看,它们非常慢,因为这些项目经常被破坏和重新创建.最好使用基于List的控件并实现itemRenderer.

默认情况下,事件侦听器是强引用,因此如果不删除事件侦听器,它将阻止对象被垃圾回收.您可以在addEventListener中使用名为"weakReference"的可选5th参数,并将值设置为true以添加不会阻止GC的事件侦听器.

为了更好地处理itemRender组件中的事件,您可以实现IDropInListItemRenderer接口.这将使您可以访问"listData",它具有"owner"属性,该属性是实际的List对象本身.在itemRenderer中,通过所有者调度包含必要数据的自定义事件.如果在创建后将事件侦听器添加到List控件,则可以在包含该控件的组件中执行事件处理.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有