当任何元素值发生变化时,我想将Array
或Vector
子类化为调度和Event.CHANGE
。
我将如何做到这一点?
答案 0 :(得分:1)
如何使用ArrayCollection并侦听CollectionEvent(mx.events.CollectionEvent.COLLECTION_CHANGE)
/** * Dispatched when the ICollectionView has been updated in some way. * * @eventType mx.events.CollectionEvent.COLLECTION_CHANGE * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ [Event(name="collectionChange", type="mx.events.CollectionEvent")]
答案 1 :(得分:0)
如果要创建自己的集合,有两种方法可以接近它: 1)扩展Array类,并使用updata(index:int,value:*)之类的方法更新其中的数据而不是数组访问器(myArray [i] = newValue)。在更新方法中,您可以发送更改事件。这可能会使您的代码更简洁。
2)扩展代理并覆盖flash_proxy命名空间中的setProperty和getProperty方法。这将允许您使用数组访问运算符([key]),缺点是 - 代理很慢。
有很多基于代理的开源集合。