123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- import { _decorator, Button, Component, Constructor, Label, Node, PageView, Sprite } from 'cc';
- import { GameMgr } from './GameMgr';
- const { ccclass, property } = _decorator;
- @ccclass('ModulerBase')
- export class ModulerBase extends Component {
- //
- protected _nodes: Map<string, Node> = new Map();
- protected _nodeName: string = "Node";
- get NodeName() { return this._nodeName };
- set NodeName(name: string) { this._nodeName = name }
- //
- init() {
- //
- this._visit(this.node);
- this.onStart();
- //
- }
- //
- protected onStart() {
- }
- //
- //刷新
- refresh() {
- }
- //获取管理者中的其他模块
- getModuler<T extends ModulerBase>(type: Constructor<T>): T {
- return GameMgr.Instance.getModuler(type);
- }
- //销毁自己
- removeSelf() {
- this.node.destroy();
- this.clearSelf();
- }
- protected clearSelf() {
- }
- //
- private _visit(node: Node) {
- if (node.name.startsWith("_")) {
- this._nodes.set(node.name, node);
- }
- for (const child of node.children) {
- this._visit(child);
- }
- }
- show() {
- this.node.active = true;
- this.use;
- }
- showing() {
- return this.node.active;
- }
- hide(clear: boolean = false) {
- this.unUse();
- if (clear) {
- this.node.destroy();
- return;
- }
- this.node.active = false;
- }
- onBtnClick(name: string, callback: Function, ...arg) {
- const node = this._nodes.get(name);
- if (!node) {
- Error("No find");
- return;
- }
- if (node) {
- node.on(Button.EventType.CLICK, () => {
- callback.apply(this, [...arg]);
- })
- }
- }
- onPageView(name: string, type, callback: Function) {
- this._nodes.get(name).on(type, callback);
- }
- getPageView(name: string): PageView {
- return this._nodes.get(name).getComponent(PageView);
- }
- getNode(name: string): Node {
- return this._nodes.get(name);
- }
- getLabel(name: string): Label {
- return this.getNode(name).getComponent(Label);
- }
- getSprite(name: string): Sprite {
- return this.getNode(name).getComponent(Sprite);
- }
- protected use() {
- }
- protected unUse() {
- }
- //
- }
|