egret事件模型
来源:互联网 发布:手机可以做淘宝客吗 编辑:程序博客网 时间:2024/06/05 04:56
class Dispatcher extends egret.EventDispatcher {
static lock: boolean = true;
private static _instance: Dispatcher;
public constructor() {
if (Dispatcher.lock) throw "please use ins()";
super();
}
// 注意此处是public static, this指向Dispatcher类, 而不是它的实例
// 因此, _instance必须定义为静态成员才能获取
public static get ins(): Dispatcher {
if (this._instance == null || this._instance == undefined) {
Dispatcher.lock = false;
this._instance = new Dispatcher();
Dispatcher.lock = true;
}
return this._instance;
}
}
// 自定义事件
class GameEvent extends egret.Event {
public constructor(type: string, data?: any, bubbles: boolean=false, cancelable: boolean=false) {
super(type, bubbles, cancelable, data);
}
}
// 自定义约会事件字符串列表
class DateEventType {
static DATE: string = 'date';
static KISS: string = 'kiss';
static WATCH_MOVIE: string = 'watch_movie';
}
// BOY
class Boy extends egret.Sprite {
public constructor() {
super();
this.childrenCreated();
}
protected childrenCreated(): void {
let dateEvent: number = Math.floor(Math.random() * 3);
console.log(dateEvent);
switch (dateEvent) {
case 0:
Dispatcher.ins.dispatchEvent(new GameEvent(DateEventType.DATE, 0));
break;
case 1:
Dispatcher.ins.dispatchEvent(new GameEvent(DateEventType.KISS, 1));
break;
case 2:
Dispatcher.ins.dispatchEvent(new GameEvent(DateEventType.WATCH_MOVIE, 2));
break;
}
}
}
////入口文档类
// 事件模型
class Main extends egret.DisplayObjectContainer {
public constructor() {
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToSatge, this);
}
private onAddToSatge(): void {
Dispatcher.ins.addEventListener(DateEventType.DATE, this.onDate, this);
Dispatcher.ins.addEventListener(DateEventType.KISS, this.onDate, this);
Dispatcher.ins.addEventListener(DateEventType.WATCH_MOVIE, this.onDate, this);
let boy: Boy = new Boy();
}
private onDate(e: GameEvent): void {
switch (e.data) {
case 0:
console.log('date');
break;
case 1:
console.log('kiss');
break;
case 2:
console.log('watch_movie');
break;
}
}
}
- egret事件模型
- egret自定义事件
- Egret
- Egret
- Egret)tween的onChange事件写法
- egret键盘pc端事件监听
- egret连续点击事件的实现
- Egret)Demo - 自定义事件及自定义事件派发器
- 事件模型
- 事件模型
- 事件模型
- 事件模型
- 事件模型
- 传统事件模型,W3C事件模型,IE事件模型
- 网络IO模型--事件模型
- nginx进程模型,事件模型
- 事件模型或异步模型
- IE事件模型与DOM事件模型
- 怎么转载别人的博客
- JQuery模拟点击事件来完成自动签到功能
- myeclipse 2016 ci 的svn插件出错
- The method decodeBuffer(String) from the type CharacterDecoder is not accessible due to restriction
- Java反射机制详解
- egret事件模型
- android网络库重构思路
- 我也说说Emacs吧(2)_-_Emacs其实就是函数的组合
- React textarea自适应文字高度伸缩 超简单版
- Java反射技术-获取构造函数
- 如何让Hbulider识别隐藏文件
- module依赖冲突
- Android LayoutInflater详解
- JS 从原型与继承理解对象