跳至主要內容

BaseEvent

大约 2 分钟

BaseEvent

BaseEvent事件派发对象继承自THREE.EventDispatcher,事件派发机制是所有框架的基础功能之一。

// 新建一个事件派发对象
const evented = new VT.BaseEvent();

// 事件执行代码
function eventHandle(event) {
    switch(event.type) {
        case "alarm":
            // 报警程序执行
            break;
    }
    // ... 程序执行
}

// 监听 alarm 事件
evented.on("alarm", eventHandle);

// 派发 alarm 事件
evented.fire({type: "alarm", data: {cameraId: "0001111"}});

方法

once

监听事件,只执行一次

  • once(type, listener)
  • 类型:{Function}
  • 参数:
    • type {String} 事件类型
    • listener {Function} 监听执行方法
// 监听一次拖拽开始事件
viewer.cameraControl.once("dragstart", (event) => {
    // 事件程序
});

addEventListener

监听事件,只要事件派发就执行

  • addEventListener(type, listener)
  • 类型:{Function}
  • 参数:
    • type {String} 事件类型
    • listener {Function} 监听执行方法
// 监听拖拽开始事件
viewer.cameraControl.addEventListener("dragstart", (event) => {
    // 事件程序
});

on

监听事件,只要事件派发就执行,等同于addEventListener

  • on(type, listener)
  • 类型:{Function}
  • 参数:
    • type {String} 事件类型
    • listener {Function} 监听执行方法
// 监听拖拽开始事件
viewer.cameraControl.on("dragstart", (event) => {
    // 事件程序
});

dispatchEvent

派发事件

  • dispatchEvent(event)
  • 类型:{Function}
  • 参数:
    • event {Object} 事件对象 {type:EventType}

// event为自定义对象
const event = {
    type: "dragstart"
};

// 触发拖拽开始事件
viewer.cameraControl.dispatchEvent(event);

fire

派发事件

  • fire(event)
  • 类型:{Function}
  • 参数:
    • event {Object} 事件对象 {type:EventType}

// event为自定义对象
const event = {
    type: "dragstart"
};

// 触发拖拽开始事件
viewer.cameraControl.fire(event);

removeEventListener

移除监听事件

  • removeEventListener(type, listener)
  • 类型:{Function}
  • 参数:
    • type {String} 事件类型
    • listener {Function} 监听执行方法
// 移除拖拽开始事件, listenerHandle
viewer.cameraControl.removeEventListener("dragstart", listenerHandle);

off

移除监听事件

  • off(type, listener)
  • 类型:{Function}
  • 参数:
    • type {String} 事件类型
    • listener {Function} 监听执行方法
// 移除拖拽开始事件, listenerHandle
viewer.cameraControl.off("dragstart", listenerHandle);

hasEvent

是否包含事件

  • hasEvent(type)
  • 类型:{Function}
  • 参数:
    • type {String} 事件类型
  • 返回:{Boolean}
viewer.cameraControl.hasEvent("dragstart");

resumeEvent

恢复事件监听

  • resumeEvent(type, listener)
  • 类型:{Function}
  • 参数:
    • type {String} 事件类型
    • listener {Function} 监听执行方法
// 恢复拖拽开始事件监听, listenerHandle
viewer.cameraControl.resumeEvent("dragstart", listenerHandle);

pauseEvent

停止事件监听

  • pauseEvent(type, listener)
  • 类型:{Function}
  • 参数:
    • type {String} 事件类型
    • listener {Function} 监听执行方法
// 暂停拖拽开始事件监听, listenerHandle
viewer.cameraControl.pauseEvent("dragstart", listenerHandle);
上次编辑于:
贡献者: dashun