事件分发类
事件分发类(EventDispatcher)
事件订阅派发机制为房间运行的核心机制,大部分房间功能间的通信都藉由该机制完成。EventDispatcher
为该机制的核心实现。
EventDispatcher
| var dispatcher = TK.EventDispatcher();
|
dispatchEvent
参数名 |
必填 |
类型 |
说明 |
eventData |
是 |
Object |
事件描述对象,详细对象属性见下文 |
log |
否 |
Boolean |
是否打印日志(debug级别),默认为 true |
参数名 |
类型 |
说明 |
type |
String |
事件类型,对应注册事件监听器时传入的 eventType |
... |
any |
其他属性可自行定义添加。监听者会收到整个event对象,按封装格式反解,即可得到事件携带的数据 |
| var event = {
type : ‘dispatch-test’,
data : ‘this is event data’
};
dispatcher.dispatchEvent(event);
|
addEventListener
- 该方法将某一类型事件的监听者(回调函数)添加到事件分发器中,当事件触发后,事件分发器会通知(回调)该监听者
参数名 |
必填 |
类型 |
说明 |
eventType |
是 |
String |
事件类型。对应dispatchEvent 方法分发的事件中的type 属性 |
listener |
是 |
Function |
事件监听回调函数。分发事件后,会触发该函数 |
| const listener1 = e => console.log(e.data)
dispatcher.addEventListener(‘dispatch-test’, listener1);
|
removeEventListener
- 该方法将某一类型事件的监听者移除,移除后,分发事件不会再通知该监听者
参数名 |
必填 |
类型 |
说明 |
eventType |
是 |
String |
事件类型。对应dispatchEvent 方法分发的事件中的type 属性 |
listener |
是 |
Function |
事件监听者。移除后,不会触发该函数 |
| dispatcher.removeEventListener(‘dispatch-test’, listener1);
|
removeAllEventListener
参数名 |
必填 |
类型 |
说明 |
eventTypeArray |
是 |
Array |
事件类型数组 |
| const removeListenerTypeArray = ['dispatch-test', 'aaa', 'bbb']
dispatcher.removeAllEventListener(removeListenerTypeArray);
|