Flex:removeAll()无法触发CollectionChangeEvent

时间:2011-05-18 08:08:32

标签: flex actionscript-3 arraycollection

代码如下:


[Bindable]
public var abc_list:ArrayCollection;

...

this.abc_list.removeAll();
this.abc_list.addAll(otherCollection);

...

this.abclist.addEventListener(CollectionChangeEvent.COLLECTION_CHANGE, onCollectionChange)

我发现在removeAll()之后无法触发事件,但它在addAll(otherCollection)[with event.type]中运行良好。

因此在添加新列表之前不会删除原始列表;并且abc_list实际上是累积的?!

为什么会这样?我该怎么办?

2 个答案:

答案 0 :(得分:0)

可能是hacky,我正在大声思考,因为我没有检查它

this.abc_list.removeAll();
this.abc_list.refresh()

并在刷新时等待CollectionEventKind.REFRESH的CollectionEvent事件

答案 1 :(得分:0)

* this.abclist.addEventListener( CollectionChangeEvent.COLLECTION_CHANGE ,onCollectionChange)*

是自定义事件吗?

我使用的是CollectionEvent.COLLECTION_CHANGE,它可以与removeAll()方法一起使用。我希望使用CollectionEvent.COLLECTION_CHANGE解决您的问题。