Skip to content

Files

Latest commit

author
Guoshaorui
May 29, 2014
da11150 · May 29, 2014

History

History
48 lines (41 loc) · 1.98 KB

08-event.md

File metadata and controls

48 lines (41 loc) · 1.98 KB

Egret框架入门第一步 - 事件

Egret采用了和Flash类似的"事件流"机制,如果您对事件尚不了解,可以参照Adobe关于Flash事件流的说明。事件的基类是Event,所有的事件类从Event扩展而来,这一点和Flash一致。来看一下Event的构造函数:

public constructor(type:string, bubbles:boolean = false, cancelable:boolean = false) {
    this._type = type;
    this._bubbles = bubbles;
    this._cancelable = cancelable;
}

这就说明Egret中的事件支持冒泡机制,您可以在创建事件的时候决定它是否冒泡,同样也就有了target和currentTarget之分。

来看一个例子:

/**显示*/
private onResourceLoadComplete():void {
    var container = new egret.DisplayObjectContainer();
    container.touchChildren = true;//等同于Flash的mouseChildren
    container.touchEnabled = true;//设置容器是否响应Touch交互
    var bitmap1 = new egret.Bitmap(RES.getRes("egretIcon"));
    bitmap1.name = "myBitmap";
    bitmap1.touchEnabled = true;
    container.addChild(bitmap1);
    container.name = "myContainer";
    container.x = container.y = 100;
    this.addChild(container);
    container.addEventListener(egret.TouchEvent.TOUCH_TAP,this.touchHandler,container);
}
/**事件侦听处理*/
private touchHandler(event:egret.TouchEvent):void {
    var msg:string = event.type;
    msg += "\n"+event.stageX+","+event.stageY;
    msg += "\n"+event.localX+","+event.localY;
    msg += "\n"+event.currentTarget.name+","+event.target.name;
    alert(msg);
}

点击后,可以看到下面的信息:

github


上一篇:容器 | 下一篇:资源管理