Files
esengine/docs/emitter.md

39 lines
1.1 KiB
Markdown
Raw Normal View History

2021-07-27 10:05:18 +08:00
# Emitter
Core提供了一个在某些关键时刻触发事件的发射器。 通过Core.emitter.addObserver和Core.emitter.removeObserver进行访问。 CoreEvents枚举定义了所有可用事件。
发射器类也可以在自己的类中使用。 您可以通过numberenum或任何结构键输入事件。
## 自定义事件发生器
- string为key的事件发生器
```typescript
export enum CustomEvent {
enum1,
enum2
}
export class MainScene extends es.Scene {
// string为key的事件发生器
private str_emitter = new es.Emitter<string>();
// number为key的事件发生器
private num_emitter = new es.Emitter<number>();
// enum为key的事件发生器
private custom_emitter = new es.Emitter<CustomEvent>();
onStart() {
// 监听触发器
this.str_emitter.addObserver("test", this.onStrEmit, this);
// 触发监听器
this.str_emitter.emit("test");
// 移除事件触发器
this.str_emitter.removeObserver("test", this.onStrEmit);
}
// args为emit传入的参数。不传则为空
onStrEmit(...args: any[]) {
console.log("test");
}
}
```