65 lines
1.5 KiB
TypeScript
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) {}
|
|
}
|
|
|