事件分发类
                
                
事件分发类(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);
 |