eui.CollectionEvent
包 eui
类 public class CollectionEvent
继承 eui.CollectionEvent → egret.Event → egret.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;
}
}
}