| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { _decorator, Component, director, Director, Input, input, KeyCode, Node } from 'cc';
- import { AppKernel } from '../../app/AppKernel';
- import { UILayer } from '../../framework/ui/UILayer';
- const { ccclass, property } = _decorator;
- @ccclass('LobbyController')
- export class LobbyController extends Component {
- @property(Node) pageLayer: Node | null = null;
- @property(Node) windowLayer: Node | null = null;
- @property(Node) popupLayer: Node | null = null;
- @property(Node) toastLayer: Node | null = null;
- @property(Node) loadingLayer: Node | null = null;
- @property(Node) systemLayer: Node | null = null;
- protected onLoad(): void {
- input.on(Input.EventType.KEY_DOWN, (event) => {
- if (event.keyCode === KeyCode.KEY_W) {
- this.node.parent.active = !this.node.parent.active;
- }
- })
- }
- protected async start(): Promise<void> {
- this.bindLayers();
- await AppKernel.ui.registerSceneViews();
- await AppKernel.appLobby.launchLobby();
- await this.waitForNextDraw();
- AppKernel.events.emit('launch:completed');
- }
- private waitForNextDraw(): Promise<void> {
- return new Promise((resolve) => {
- director.once(Director.EVENT_AFTER_DRAW, resolve);
- });
- }
- protected onDestroy(): void {
- AppKernel.events.offTarget(this);
- AppKernel.ui.clearSceneLayers();
- }
- private bindLayers(): void {
- const bindings: Array<[UILayer, Node | null]> = [
- [UILayer.Page, this.pageLayer],
- [UILayer.Window, this.windowLayer],
- [UILayer.Popup, this.popupLayer],
- [UILayer.Toast, this.toastLayer],
- [UILayer.Loading, this.loadingLayer],
- [UILayer.System, this.systemLayer],
- ];
- for (const [layer, node] of bindings) {
- if (node) AppKernel.ui.bindLayer(layer, node);
- }
- }
- }
|