AS3 - 如何从数组/向量中调度Event.CHANGE?

时间:2011-09-30 09:20:20

标签: arrays actionscript-3 events vector

当任何元素值发生变化时,我想将ArrayVector子类化为调度和Event.CHANGE

我将如何做到这一点?

2 个答案:

答案 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]),缺点是 - 代理很慢。

有很多基于代理的开源集合。