CesiumJS 的 Event
类可以用来实现事件的监听与触发。本文档介绍了该类的基本概念、属性、方法以及使用示例。
事件类型(Type):事件的种类,例如 click
、mousemove
等。
事件对象(Event object):事件发生时所传递的参数。例如,click
事件会传递鼠标点击的位置等信息。
事件监听器(Event listener):事件发生时执行的函数。当事件被触发时,所有监听该事件的监听器都将被调用。
Event 对象本身没有属性。
addEventListener(type: string, listener: function, scoped: any)
为指定的事件类型添加一个监听器。
type
: (必填) 事件类型。
listener
: (必填) 发生事件时要执行的函数。
scoped
: (可选) 当函数执行时绑定到此对象上的 this
,即指定函数的作用域。默认值为 undefined
。
removeEventListener(type: string, listener: function, scoped: any)
从指定的事件类型中移除一个监听器。
type
: (必填) 事件类型。
listener
: (必填) 要移除的监听器函数。
scoped
: (可选) 要移除的监听器的作用域对象。 默认值为 undefined
。
raiseEvent(event: Object)
触发指定类型的事件。所有已注册该事件类型的监听器都将被调用。
event
: (必填) 触发的事件对象。必须包含 type
属性作为事件类型。// 定义一个自定义事件类型
var CUSTOM_EVENT_TYPE = 'custom_event';
// 创建一个 Event 对象
var event = new Cesium.Event();
// 定义一个监听器
var listener = function(e) {
console.log('Custom event was called, and it says: ' + e.message);
};
// 添加一个监听器
event.addEventListener(CUSTOM_EVENT_TYPE, listener);
// 触发自定义事件
event.raiseEvent({
type: CUSTOM_EVENT_TYPE,
message: 'Hello, world!'
});
// 移除监听器
event.removeEventListener(CUSTOM_EVENT_TYPE, listener);
在上面的示例中,我们首先创建了一个 Event
对象。然后定义了一个常量 CUSTOM_EVENT_TYPE
,表示自定义事件类型。接下来定义了一个监听器函数,在监听到自定义事件时会打印一条消息。
在 Event
对象上,我们使用 addEventListener
方法添加了监听器。然后在触发自定义事件时,传入一个包含事件类型和消息的对象,它将调用所有注册的该类型的监听器进行处理。在例子中,只有一个监听器。
最后,我们使用 removeEventListener
方法将监听器从事件类型中移除。这是一个可选步骤,但是可以避免在事件触发后继续接收到该事件。