57 lines
1.0 KiB
Dart
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);
|
|
}
|