marineparkclient/assets/script/manager/PM_UIManager.ts
2023-08-15 11:09:12 +08:00

65 lines
1.5 KiB
TypeScript

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