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(){
-
- }
- //
- }
|