定义(可在listener中自行添加参数接收)
/// 自定义事件处理
class CustomEvent {
List<Function()> listeners = [];
/// 添加事件监听
void addListener(Function() listener) {
listeners.add(listener);
}
/// 移除事件监听
void removeListener(Function() listener) {
listeners.removeWhere((element) => element == listener);
}
/// 提交、触发事件
void emit() {
for (Function() listener in listeners) {
listener();
}
}
}
使用示例
/// 事件定义
CustomEvent secretShootingCountdownOverEvent = CustomEvent();
/// 事件监听处理函数
void listener(){
//....
}
// 添加
secretShootingCountdownOverEvent.addListener(listener);
// 移除(勿忘,比如在页面或组件中的dispose中调用)
secretShootingCountdownOverEvent.removeListener(listener);
// 触发
secretShootingCountdownOverEvent.emit();