SteamCloudGame/lib/common/EventBusUtil.dart
2024-12-01 19:13:07 +08:00

57 lines
1.0 KiB
Dart

import 'dart:async';
import 'package:event_bus/event_bus.dart';
class EventBusUtil {
static EventBus? _eventBus;
//获取单例
static EventBus getInstance() {
_eventBus ??= EventBus();
return _eventBus!;
}
//返回某事件的订阅者
static StreamSubscription<T> listen<T extends Event>(Function(T event) onData) {
_eventBus ??= EventBus();
//内部流属于广播模式,可以有多个订阅者
return _eventBus!.on<T>().listen(onData);
}
//发送事件
static void fire<T extends Event>(T e) {
_eventBus ??= EventBus();
_eventBus!.fire(e);
}
}
abstract class Event {}
class OrderStatusEvent extends Event {}
class PushStatusEvent extends Event {}
//刷新用户信息
class RefreshUserdata extends Event {
RefreshUserdata();
}
//支付成功
class PaySuccess extends Event {
PaySuccess();
}
//启动游戏
class StartGames extends Event {
final String gameId;
StartGames(this.gameId);
}
//tab切换
class TabSwitch extends Event {
final int index;
TabSwitch(this.index);
}