| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { _decorator, Component } from 'cc';
- import { UICloseReason } from './UILayer';
- import { AppKernel } from '../../app/AppKernel';
- import type { UIViewID } from '../../define/UIDefine';
- const { ccclass } = _decorator;
- @ccclass('UIView')
- export class UIView<TParams = unknown> extends Component {
- /** UIManager 用它识别并接管场景中预放置的 UIView。 */
- readonly viewId: UIViewID | null = null;
- public getViewID(): UIViewID {
- if (!this.viewId) {
- return (this?.node?.name || "") as UIViewID;
- }
- return this.viewId;
- }
- async internalCreate(): Promise<void> {
- await this.onCreate();
- }
- async internalOpen(params: TParams): Promise<void> {
- this.node.setSiblingIndex
- await this.onOpen(params);
- }
- async internalBeforeClose(reason: UICloseReason): Promise<boolean> {
- return this.onBeforeClose(reason);
- }
- async internalClose(reason: UICloseReason): Promise<void> {
- await this.onClose(reason);
- }
- internalDispose(): void {
- this.onDispose();
- }
- protected onDestroy(): void {
- AppKernel.events.offTarget(this);
- }
- protected onCreate(): void | Promise<void> { }
- protected onOpen(_params: TParams): void | Promise<void> { }
- protected onFocus(): void { }
- protected onBlur(): void { }
- protected onBeforeClose(_reason: UICloseReason): boolean | Promise<boolean> { return true; }
- protected onClose(_reason: UICloseReason): void | Promise<void> { }
- protected onDispose(): void { }
- }
|