Skip to content

EventManager

事件管理器类,继承自Three.js的EventDispatcher,提供统一的事件监听和管理功能。支持为多个对象添加、移除事件监听器,并提供批量清理功能。

类定义

javascript
class EventManager extends EventDispatcher

属性

eventMap

事件映射表,返回内部存储的事件映射Map对象,包含所有对象与其事件监听器的映射关系。

类型: {Map<Object, Map<string, Array<Function>>>}
只读: true

方法

addEvent(object, eventType, event)

为对象添加事件监听器,将事件监听器添加到指定对象的事件映射中。

参数:

  • object {Object} - 要添加事件监听器的对象
  • eventType {string} - 事件类型
  • event {Function} - 事件监听器函数

示例:

javascript
// 为按钮添加点击事件监听
eventManager.addEvent(button, 'click', handleClick);

// 为窗口添加resize事件监听
eventManager.addEvent(window, 'resize', handleResize);

removeEvent(object, eventType, event)

移除对象的事件监听器,从指定对象的事件映射中移除特定的事件监听器。

参数:

  • object {Object} - 要移除事件监听器的对象
  • eventType {string} - 事件类型
  • event {Function} - 要移除的事件监听器函数

示例:

javascript
// 移除按钮的点击事件监听
eventManager.removeEvent(button, 'click', handleClick);

// 移除窗口的resize事件监听
eventManager.removeEvent(window, 'resize', handleResize);

removeAllEvent()

移除所有事件监听器,批量移除所有已注册的事件监听器,并清空内部的事件映射表。

示例:

javascript
// 清理所有事件监听器
eventManager.removeAllEvent();

dispose()

释放事件管理器资源,清理所有事件监听器和映射关系。

示例:

javascript
// 清理所有事件
eventManager.dispose();

继承的方法

EventManager继承自Three.js的EventDispatcher,重写了以下方法:

addEventListener(type, listener)

添加事件监听器(继承自EventDispatcher)。

参数:

  • type {string} - 事件类型
  • listener {Function} - 事件监听器函数

示例:

javascript
// 添加事件监听器
eventManager.addEventListener('customEvent', handleCustomEvent);

removeEventListener(type, listener)

移除事件监听器(继承自EventDispatcher)。

参数:

  • type {string} - 事件类型
  • listener {Function} - 要移除的事件监听器函数

示例:

javascript
// 移除事件监听器
eventManager.removeEventListener('customEvent', handleCustomEvent);

使用场景

事件管理

  • 统一管理多个对象的事件监听器
  • 提供便捷的事件添加和移除方法
  • 支持批量事件清理

资源清理

  • 防止内存泄漏
  • 提供完整的事件清理功能
  • 支持对象的生命周期管理

事件分发

  • 支持自定义事件的创建和分发
  • 提供事件监听器的检查功能
  • 继承Three.js的事件系统

批量操作

  • 支持批量移除所有事件监听器
  • 提供统一的事件管理接口
  • 支持事件映射表的访问

相关链接

文档内容为北京逆维悦动科技有限公司版权所有,禁止未授权转载