// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html const {ccclass, property} = cc._decorator; @ccclass export default class PM_UIManager extends cc.Component { @property(cc.Node) parent: cc.Node = null; preFabPool = {} showUI(preFab:cc.Prefab,indexZ:number,func:Function):cc.Node{ let tempNode ; if(this.preFabPool[preFab.name]) { tempNode = this.preFabPool[preFab.name]; }else{ tempNode = cc.instantiate(preFab); this.parent.addChild(tempNode); } tempNode.active = false; this.preFabPool[preFab.name] = tempNode; func(this.preFabPool[preFab.name]); this.openAction(tempNode); return tempNode; } openAction(sender:cc.Node) { sender.active = true; cc.tween(sender) .to(0,{"scale":0.9}) .to(0.1,{"scale":1.1}) .to(0.1,{"scale":1}) .start(); } closeAction(sender:cc.Node) { cc.tween(sender) .to(0.1,{"scale":1.1}) .to(0.1,{"scale":0.9}) .call(()=>{ sender.active = false }) .start(); } // LIFE-CYCLE CALLBACKS: // onLoad () {} start () { } // update (dt) {} }