import { _decorator, Button, Component, instantiate, Node, ScrollView } from 'cc'; import { LayerMgr } from '../../script/Manager/LayerMgr'; import { allMapList, getAllMapKeys, MapData, UserMap } from '../../script/Manager/LocalDataMgr'; import { MapItem } from './MapItem'; const { ccclass, property } = _decorator; @ccclass('SelectMapPanel') export class SelectMapPanel extends Component { @property(Node) itemRoot: Node = null; @property(Node) itemPrefab: Node = null; @property(Button) btnClose: Button = null; @property(ScrollView) scrollView:ScrollView = null; _mapData:MapData = null _allMapList:{ [key: number]: string }; _items: Node[] = []; _hasCreatedItems:boolean = false; protected start(): void { this.btnClose.node.on(Node.EventType.TOUCH_END,this.onBtnCloseClick,this) } init() { if(this._hasCreatedItems) return; this._hasCreatedItems = true; this._allMapList = allMapList this._mapData = UserMap.getMapData() let allMapKeys = getAllMapKeys() let count = allMapKeys.length; for (let i = 0; i < count; i++) { this.createItem(allMapKeys[i]); } } onBtnCloseClick() { this.node.active = false } createItem(key: number) { let itemNode = instantiate(this.itemPrefab); itemNode.parent = this.itemRoot; this._items.push(itemNode); itemNode.active = true let mapItem = itemNode.getComponent(MapItem) mapItem.init(key,this.judgeSelect(key)) } judgeSelect(key) { let selMaps = this._mapData.selectedMaps let index = selMaps.indexOf(key) return index !== -1 } clearSelectAllMaps() { UserMap.removeAllSelectMap() this.refreshMapSelectioin() } refreshMapSelectioin() { let allMapKeys = getAllMapKeys() let count = allMapKeys.length; for(let i = 0; i < count; i++){ let item = this._items[i] item.getComponent(MapItem).setSelectMap(false) } } slideToBottom() { this.scrollView.scrollToBottom() } selectAllMap() { UserMap.addAllSelectMap() this._items.forEach((item)=>{ item.getComponent(MapItem).setSelectMap(true) }) } //获取上一关的 lastLevel() { } nextLevel() { } }