- 实现 ViewManager 单例页面管理器,支持页面注册、打开、关闭、缓存 - 实现 BaseView 页面基类,提供统一的页面生命周期 - 添加 PageHome 首页,包含开始游戏按钮跳转功能 - 添加 PageLevel 关卡页面,继承 BaseView - 更新 PageLoading 支持进度条显示和页面预加载 - 添加相关图片资源和预制体 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
65 lines
1.5 KiB
TypeScript
65 lines
1.5 KiB
TypeScript
import { _decorator, Node, Button } from 'cc';
|
||
import { BaseView } from '../../scripts/core/BaseView';
|
||
import { ViewManager } from '../../scripts/core/ViewManager';
|
||
const { ccclass, property } = _decorator;
|
||
|
||
/**
|
||
* 首页组件
|
||
* 继承 BaseView,实现页面生命周期
|
||
*/
|
||
@ccclass('PageHome')
|
||
export class PageHome extends BaseView {
|
||
@property({ type: Node, tooltip: '开始游戏按钮' })
|
||
startGameBtn: Node | null = null;
|
||
|
||
/**
|
||
* 页面首次加载时调用
|
||
*/
|
||
onViewLoad(): void {
|
||
console.log('[PageHome] onViewLoad');
|
||
this._initButtons();
|
||
}
|
||
|
||
/**
|
||
* 初始化按钮事件
|
||
*/
|
||
private _initButtons(): void {
|
||
if (this.startGameBtn) {
|
||
this.startGameBtn.on(Button.EventType.CLICK, this._onStartGameClick, this);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 开始游戏按钮点击回调
|
||
*/
|
||
private _onStartGameClick(): void {
|
||
console.log('[PageHome] 开始游戏按钮点击');
|
||
ViewManager.instance.open('PageLevel');
|
||
}
|
||
|
||
/**
|
||
* 页面每次显示时调用
|
||
*/
|
||
onViewShow(): void {
|
||
console.log('[PageHome] onViewShow');
|
||
}
|
||
|
||
/**
|
||
* 页面隐藏时调用
|
||
*/
|
||
onViewHide(): void {
|
||
console.log('[PageHome] onViewHide');
|
||
}
|
||
|
||
/**
|
||
* 页面销毁时调用
|
||
*/
|
||
onViewDestroy(): void {
|
||
console.log('[PageHome] onViewDestroy');
|
||
// 移除按钮事件监听
|
||
if (this.startGameBtn) {
|
||
this.startGameBtn.off(Button.EventType.CLICK, this._onStartGameClick, this);
|
||
}
|
||
}
|
||
}
|