跳转至

事件分发类

事件分发类(EventDispatcher)

事件订阅派发机制为房间运行的核心机制,大部分房间功能间的通信都藉由该机制完成。EventDispatcher为该机制的核心实现。

EventDispatcher

  • 该方法实例化一个 EventDispatcher 对象,房间内各种事件的监听和派发均由该对象控制

  • 方法示例

1
var dispatcher = TK.EventDispatcher();

dispatchEvent

  • 该方法将某一事件分发给所有监听者
参数名 必填 类型 说明
eventData Object 事件描述对象,详细对象属性见下文
log Boolean 是否打印日志(debug级别),默认为 true
  • eventData
参数名 类型 说明
type String 事件类型,对应注册事件监听器时传入的 eventType
... any 其他属性可自行定义添加。监听者会收到整个event对象,按封装格式反解,即可得到事件携带的数据
  • 方法示例
1
2
3
4
5
 var event = {
    type : dispatch-test,
    data : this is event data
};
dispatcher.dispatchEvent(event);

addEventListener

  • 该方法将某一类型事件的监听者(回调函数)添加到事件分发器中,当事件触发后,事件分发器会通知(回调)该监听者
参数名 必填 类型 说明
eventType String 事件类型。对应dispatchEvent方法分发的事件中的type属性
listener Function 事件监听回调函数。分发事件后,会触发该函数
  • 方法示例
1
2
3
const listener1 = e => console.log(e.data)

dispatcher.addEventListener(dispatch-test, listener1);

removeEventListener

  • 该方法将某一类型事件的监听者移除,移除后,分发事件不会再通知该监听者
参数名 必填 类型 说明
eventType String 事件类型。对应dispatchEvent方法分发的事件中的type属性
listener Function 事件监听者。移除后,不会触发该函数
  • 方法示例
1
dispatcher.removeEventListener(dispatch-test, listener1);

removeAllEventListener

  • 该方法移除指定事件的所有监听者
参数名 必填 类型 说明
eventTypeArray Array 事件类型数组
  • 方法示例
1
2
const removeListenerTypeArray = ['dispatch-test', 'aaa', 'bbb']
dispatcher.removeAllEventListener(removeListenerTypeArray);

© 2016-2023 北京拓课网络科技有限公司 版权所有  京ICP备17018423号-1 京公网安备11010502043461号