Apache flex 观看ArrayCollection';AS3/Flex中的s长度属性

Apache flex 观看ArrayCollection';AS3/Flex中的s长度属性,apache-flex,actionscript-3,events,arraycollection,Apache Flex,Actionscript 3,Events,Arraycollection,我想在ArrayCollection的长度上放置一个eventListener,但我不知道如何进行此操作 我之所以要这样做,是因为我只希望在某个ArrayCollection中有一定数量的内容时执行代码。我希望Flex等待在下一个对象上执行此代码,直到length属性下降到可接受的水平。我想我应该用事件来做这件事,而不是坐在那里永远滔滔不绝的while循环(我也不知道怎么做) 请帮忙,提前谢谢。到目前为止,这是一个很大的帮助。您只需添加一个“collectionChange”事件侦听器,并检查A

我想在ArrayCollection的长度上放置一个eventListener,但我不知道如何进行此操作

我之所以要这样做,是因为我只希望在某个ArrayCollection中有一定数量的内容时执行代码。我希望Flex等待在下一个对象上执行此代码,直到length属性下降到可接受的水平。我想我应该用事件来做这件事,而不是坐在那里永远滔滔不绝的while循环(我也不知道怎么做)


请帮忙,提前谢谢。到目前为止,这是一个很大的帮助。

您只需添加一个“collectionChange”事件侦听器,并检查ArrayCollection.length自上一个事件以来是否已更改。(您需要保留ArrayCollection长度的静态副本或实例副本,以便进行比较。)


另一个想法是创建自己的lengthChangedEvent,扩展ArrayCollection,重写length属性,然后在setter中查找并调用任何lengthChangedEvent侦听器。然后在需要侦听事件的任何位置使用扩展的ArrayCollection代替基类。但这不起作用,因为length属性是只读的,并且没有要重写的setter。您必须覆盖每个可以从ArrayCollection添加或删除项的方法,并在每种情况下测试/调用lengthChangedEvent侦听器。

ArrayCollection在其项发生更改时将发送一个“collectionChange”事件。因此,您可以侦听该事件,并在每次调度该事件时检查“length”属性。或者,您也可以通过BindingUtils.bindSetter()绑定到length属性