我智商爆棚
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wozhishangbaopeng/assets/WordGame/gameComScript/MultipleChooseLayer.ts

91 lines
2.5 KiB

4 weeks ago
import { ryw_Event } from "../../FrameWork/Event/EventEnum";
import EventMgr from "../../FrameWork/Event/EventMgr";
import Common from "../../FrameWork/Util/Common";
import Common5 from "../../Platform/th/Common5";
const { ccclass, property } = cc._decorator;
@ccclass
export default class MultipleChooseLayer extends cc.Component {
@property(cc.Node)
btnNode: cc.Node = null;
@property(cc.Node)
btnNodeContent: cc.Node = null;
@property(cc.Node)
titleNode: cc.Node = null;
@property(cc.Node)
closeBtn: cc.Node = null;
@property()
delayTime: number = 1;
private isStart = false;
private touchIndexs: Set<number> = null;
// onLoad () {}
// protected onEnable(): void {
// }
// start() {}
setChooseBtnView(chooseArray: string[], chooseTitle?: string, canClose?: boolean) {
this.btnNodeContent.removeAllChildren();
this.btnNode.active = false;
this.isStart = true;
this.touchIndexs = new Set();
this.node.active = true;
for (let i = 0; i < chooseArray.length; i++) {
let btnNode = cc.instantiate(this.btnNode);
btnNode.active = true;
this.btnNodeContent.addChild(btnNode);
btnNode.setPosition(cc.v2(0, 0));
let lab = btnNode.getChildByName('lab').getComponent(cc.Label);
lab.string = chooseArray[i];
btnNode['touchIndex'] = i;
}
this.titleNode.parent.active = false;
if (chooseTitle) {
this.titleNode.parent.active = true;
this.titleNode.active = true;
this.titleNode.getComponent(cc.Label).string = chooseTitle;
}
this.closeBtn.active = false;
if (this.closeBtn) {
this.closeBtn.active = canClose;
}
}
closeBtnClickEvent() {
Common5.playEffect("点击音效");
this.node.active = false;
EventMgr.emitEvent_custom(ryw_Event.chooseResult, { touchIndexs: [-1] });
}
chooseBtnClickEvent(event) {
Common5.playEffect("点击音效");
let target = event.target;
this.touchIndexs.add(target['touchIndex']);
this.startTimer();
}
startTimer() {
if (this.isStart) {
this.isStart = false;
this.scheduleOnce(() => {
EventMgr.emitEvent_custom(ryw_Event.chooseResult, { touchIndexs: this.touchIndexs });
console.log('ChooseBtnLayer chooseBtnClickEvent++++++++====');
this.node.active = false;
}, this.delayTime);
}
}
}