事件发送者
具体的事件
事件侦听者
具体的事件:约会
class DateEvent extends egret.Event{
// 具体的事件:约会
public static DATE:string = '约会'
public _year:number = 0 // 事件发生在哪年
public _month:number = 0 // 哪月
public _date:number = 0 // 哪天
public _where:string = '' // 什么地方
public _todo:string = '' // 具体干什么
// 构造函数必须有参数,
// type:类型
// bulles:是否冒泡
// cancelable:是否答应
public constructor(type:string,bulles:boolean = false,cancelable:boolean = false){
super(type,bulles,cancelable)
}
}
事件发送者:男朋友
class Man extends egret.Sprite{
public constructor(){
super()
}
public order(){
// 生成一个 约会事件 的事件对象,,,要传递一个事件类型:type参数
var dateEvent:DateEvent = new DateEvent(DateEvent.DATE)
// dateEvent是一个具体的事件,,
// 给dateEvent约会事件添加具体的信息
dateEvent._year = 2018
dateEvent._month = 7
dateEvent._date = 7
dateEvent._where = '鹊桥'
dateEvent._todo = '约会'
// 发送请求事件,,,dateEvent就是一个具体的事件
this.dispatchEvent(dateEvent)
}
}
事件侦听者:女朋友
class Woman extends egret.Sprite{
public constructor(){
super()
}
// 侦听约会事件
public getData(event:DateEvent):void{
console.log('得到了' + event.target.name + '的约会邀请')
console.log(`希望${event._year}年${event._month}月${event._date}日你可以和我在${event._where}${event._todo}`)
}
}
主函数
class Main extends egret.DisplayObjectContainer{
public constructor(){
super()
this.addEventListener(egret.Event.ADDED_TO_STAGE,this.init,this)
}
private init(event:egret.Event){
// 创建男朋友
let man:Man = new Man()
man.name = '叶遮天'
// 创建女朋友
let woman:Woman = new Woman()
woman.name = '紫月'
// 注册侦听事件,女朋友侦听DateEvent.Date事件,并getDate处理
man.addEventListener(DateEvent.DATE,woman.getData,woman)
// 男朋友邀请
man.order()
// 移除侦听器
man.removeEventListener(DateEvent.DATE,woman.getData,woman)
}
}
网友评论