// 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 import ResManager from "../../common/res/ResManager"; import UIBaseEv from "../../common/ui/uiEv/UIBaseEv"; import { composeObj } from "../Model/data/baseObject"; import { IDDef } from "../Model/data/excelDefine"; import { propType, PropUnlock } from "../Model/data/propObject"; import ProxyClientDataMgr from "../Model/ProxyClientDataMgr"; import touristModule from "../module/touristModule"; import UIUnlockVenueLayer from "./UIUnlockVenueLayer"; import UIUpgradeVenueLayer from "./UIUpgradeVenueLayer"; //import gameinfo from "./data/gameInfo" //import UIBase from "./common/ui/base/UIBase"; const {ccclass, property} = cc._decorator; @ccclass export default class UISingleVenueLayer extends UIBaseEv { @property(cc.Button) singleAreaBtnArr:cc.Button[] = []; @property(cc.Prefab) touristPf:cc.Prefab = null; nodePools:cc.NodePool = new cc.NodePool; maxVenueCount = 4; startPos = cc.v2(0,-510); endPos = cc.v2(0,510); newPos = cc.v2(0,-510); arrVenueData:composeObj[] = []; onLoad() { //this._Buttons["singleArea_1"]; //let objectData = new gameinfo(111); //let gold = objectData.getMeans(0); //objectData. for (let i = 0; i < this.singleAreaBtnArr.length; i++) { let clickEventHander = new cc.Component.EventHandler(); clickEventHander.target = this.node; clickEventHander.component = "UISingleVenueLayer"; clickEventHander.handler = "onClickEvent"; clickEventHander.customEventData = ""+i; this.singleAreaBtnArr[i].clickEvents.push(clickEventHander) this.singleAreaBtnArr[i].node.zIndex = 1; } } onClickEvent(event,customEventData){ let node = event.target; let button = node.getComponent(cc.Button); let index = +customEventData; switch (index) { default: this.checkLockVenue(index); break; } } openPerConfig(data) { } checkAreaOpen(sender) { for (let i = 0; i < sender.length; i++) { sender[i]["isOpen"] = true; } } async createTourist() { if (this.nodePools.size() === 0) { let PanelPath = "Prefabs/touristModule"; let pre = await ResManager.inst.loadPrefab(PanelPath); if(!pre) { cc.warn(`${PanelPath} 资源加载失败, 请确认路径是否正确`); return ; } let tempTourist:cc.Node = cc.instantiate(pre); this.nodePools.put(tempTourist) } let touristTemp = this.nodePools.get(); let touristTempTs = touristTemp.getComponent(touristModule); this.node.addChild(touristTemp) touristTemp.zIndex = 0; touristTemp.setPosition(this.startPos) touristTempTs.init(this.node); } recycleTourist(sender) { sender.getComponent(touristModule).reset(); this.nodePools.put(sender); } // LIFE-CYCLE CALLBACKS: // onLoad () {} onEnable(){ //this.createTourist(); this.schedule(this.createTourist,(2+Math.random()*3)); } onDisable(){ this.unschedule(this.createTourist); } checkLockVenue(idx):void //检查解锁 { let tempObj = this.arrVenueData[idx].getPropByType(propType.unlock) as PropUnlock if(tempObj &&!tempObj.getUnLock()) { UIUnlockVenueLayer.openView(this.arrVenueData[idx]); } else { UIUpgradeVenueLayer.openView(this.arrVenueData[idx]); } } onShow(pageIdex:number):void { let venueObj = ProxyClientDataMgr.ins().getComposeObj(IDDef.PARK) let arrTempVenue = []; let tempObj = venueObj.getMemberMap(); for (let i of tempObj.values()) { arrTempVenue.push(i); } let endCount = (pageIdex + 1)*this.maxVenueCount; let startCount = this.maxVenueCount * pageIdex; for (let i = startCount; i < endCount; i++) { this.arrVenueData.push(arrTempVenue[i]); } this.updateBtnUi(); } updateBtnUi():void { for (let i = 0; i < this.maxVenueCount; i++) { let btn = this.singleAreaBtnArr[i]; let label = btn.getComponentInChildren(cc.Label); let tempObj = this.arrVenueData[i] //文字显示 后续应该是图片 let str = tempObj.getName(); label.string = str; } } start () { //this.planRoad() // if (this.nodePools.size() === 0) { // let tempTourist = cc.instantiate(this.touristPf); // this.nodePools.put(tempTourist) // } // let touristTemp = this.nodePools.get(); // let touristTempTs = touristTemp.getComponent("touristModule"); // this.node.addChild(touristTemp) // touristTemp.zIndex = 0; // touristTemp.setPosition(cc.v2(210,350)); // touristTemp.setScale(4); } onDestroy() { this.nodePools.clear(); } // update (dt) {} }