跳到主要内容

eui.CollectionEvent

   eui

   public class CollectionEvent

继承    eui.CollectionEvent → egret.Eventegret.HashObject

集合类型数据改变事件

公共属性

属性
COLLECTION_CHANGE : string
[静态]集合类数据发生改变
items : any[]
受事件影响的项目的列表
kind : string
指示发生的事件类型
location : number
如果 kind 值为 CollectionEventKind.ADD、CollectionEventKind.REMOVE 或 CollectionEventKind.REPLACE,CollectionEventKind.UPDATE则此属性为 items 属性中指定的项目集合中零号元素的的索引
oldItems : any[]
仅当kind的值为CollectionEventKind.REPLACE时,表示替换前的项目列表
oldLocation : number
此属性为 items 属性中指定的项目在目标集合中原来位置的从零开始的索引

公共方法

方法
CollectionEvent(type:string,bubbles:boolean,cancelable:boolean,kind:string,location:number,oldLocation:number,items:any[],oldItems:any[])
创建一个 CollectionEvent 实例
dispatchCollectionEvent(target:egret.IEventDispatcher,eventType:string,kind:string,location:number,oldLocation:number,items:any[],oldItems:any[]):boolean
[静态]使用指定的EventDispatcher对象来抛出事件对象

属性详细信息

COLLECTION_CHANGE

COLLECTION_CHANGE : string = "collectionChange"

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

集合类数据发生改变

items

items : any[]

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

受事件影响的项目的列表。

kind

kind : string

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

指示发生的事件类型。此属性值可以是 CollectionEventKind 类中的一个值,也可以是 null,用于指示类型未知。

location

location : number

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

如果 kind 值为 CollectionEventKind.ADD、CollectionEventKind.REMOVE 或 CollectionEventKind.REPLACE,CollectionEventKind.UPDATE则此属性为 items 属性中指定的项目集合中零号元素的的索引。

oldItems

oldItems : any[]

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

仅当kind的值为CollectionEventKind.REPLACE时,表示替换前的项目列表。

oldLocation

oldLocation : number

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

此属性为 items 属性中指定的项目在目标集合中原来位置的从零开始的索引。

方法详细信息

CollectionEvent()

public CollectionEvent(type:string,bubbles:boolean,cancelable:boolean,kind:string,location:number,oldLocation:number,items:any[],oldItems:any[])

创建一个 CollectionEvent 实例

  • 支持版本:eui 1.0
  • 运行平台:Web,Native
  • 参数
    • type:string - 事件类型;指示触发事件的动作。
    • bubbles:boolean - 指定该事件是否可以在显示列表层次结构得到冒泡处理。
    • cancelable:boolean - 指定是否可以防止与事件相关联的行为。
    • kind:string - 指示发生的事件类型。此属性值可以是 CollectionEventKind 类中的一个值,也可以是 null,用于指示类型未知。
    • location:number - 如果 kind 值为 CollectionEventKind.ADD,CollectionEventKind.REMOVE,CollectionEventKind.REPLACE,或CollectionEventKind.UPDATE则此属性为 items 属性中指定的项目集合中零号元素的的索引。
    • oldLocation:number - 此值指示 items 属性中指定的项目在目标集合中的原位置。
    • items:any[] - 受事件影响的项目的列表。
    • oldItems:any[] - 仅当kind的值为CollectionEventKind.REPLACE时,表示替换前的项目列表。

dispatchCollectionEvent()

public dispatchCollectionEvent(target:egret.IEventDispatcher,eventType:string,kind:string,location:number,oldLocation:number,items:any[],oldItems:any[]):boolean

使用指定的EventDispatcher对象来抛出事件对象。抛出的对象将会缓存在对象池上,供下次循环复用。

  • 支持版本:eui 1.0
  • 运行平台:Web,Native
  • 参数
    • target:egret.IEventDispatcher - 事件派发目标。
    • eventType:string - 事件类型;指示触发事件的动作。
    • kind:string - 指示发生的事件类型。此属性值可以是 CollectionEventKind 类中的一个值,也可以是 null,用于指示类型未知。
    • location:number - 如果 kind 值为 CollectionEventKind.ADD,CollectionEventKind.REMOVE,CollectionEventKind.REPLACE,或CollectionEventKind.UPDATE则此属性为 items 属性中指定的项目集合中零号元素的的索引。
    • oldLocation:number - 此值指示 items 属性中指定的项目在目标集合中的原位置。
    • items:any[] - 受事件影响的项目的列表。
    • oldItems:any[] - 仅当kind的值为CollectionEventKind.REPLACE时,表示替换前的项目列表。

示例


**

* 以下示例使用 CollectionEventExample 类来说明如何使用集合类型数据改变事件

*/

class CollectionEventExample extends egret.Sprite {

constructor() {

super();

var arr = [2, 1, 3];

var arrayCollection = new eui.ArrayCollection();

arrayCollection.source = arr;

arrayCollection.addEventListener(eui.CollectionEvent.COLLECTION_CHANGE, this.onCollectionChange, this);

arrayCollection.addItem(5);//add

arrayCollection.addItemAt(6, 1);//add

arrayCollection.source.sort();

arrayCollection.refresh();//refersh

arrayCollection.removeItemAt(2);//remove

arrayCollection.removeAll();//remove

arrayCollection.source = [1, 2, 3];//reset

arrayCollection.replaceItemAt(7, 1);//replace

arrayCollection.source[1] = 8;

arrayCollection.itemUpdated(1);//update

}

private onCollectionChange(e: eui.CollectionEvent) {

switch (e.kind) {

case eui.CollectionEventKind.ADD:

egret.log("arrayCollection add" + " " + e.currentTarget.source + " " + e.location);

break;

case eui.CollectionEventKind.REFRESH:

egret.log("arrayCollection refersh" + " " + e.currentTarget.source + " " + e.location);

break;

case eui.CollectionEventKind.REMOVE:

egret.log("arrayCollection remove" + " " + e.currentTarget.source + " " + e.location);

break;

case eui.CollectionEventKind.REPLACE:

egret.log("arrayCollection replace" + " " + e.currentTarget.source + " " + e.location);

break;

case eui.CollectionEventKind.RESET:

egret.log("arrayCollection reset" + " " + e.currentTarget.source + " " + e.location);

break;

case eui.CollectionEventKind.UPDATE:

egret.log("arrayCollection update" + " " + e.currentTarget.source + " " + e.location);

break;

}

}

}