import { _decorator, Component, Node, Prefab, Sprite, SpriteFrame } from 'cc'; import { DataSystem } from '../core/data/DataSystem'; import { Http } from '../core/net/Http'; import { ResourceLoader } from '../core/resourceManager/ResourceLoader'; import List from '../core/ui/virtualList/List'; import { FriendItem } from './FriendItem'; import { GodTowerData } from './GodTowerData'; const { ccclass, property, requireComponent } = _decorator; /**查看好友 */ @ccclass('FriendList') @requireComponent(Http) @requireComponent(ResourceLoader) export class FriendList extends Component { @property({ type: Sprite, tooltip: "标题" }) titleSprite: Sprite; @property({ type: List, tooltip: "好友列表" }) list: List; @property({ type: Prefab, tooltip: "Item预制体" }) item: Prefab; private data = []; private infoData: GodTowerData; start() { this.infoData = DataSystem.getData(GodTowerData); } public async onOpenHandler(friendlv: number = 0) { let img = await this.getComponent(ResourceLoader).load(`image/friendTitle/friendLvTitle_${friendlv + 1}/spriteFrame`, SpriteFrame); this.titleSprite.spriteFrame = img; friendlv = friendlv > 4 ? 0 : friendlv; this.data = this.infoData[`g${friendlv + 1}Members`]; for (let i = 0; i < this.data.length; i++) { this.data[i].friendLv = friendlv; } this.list.numItems = this.data.length; } /** * 当列表项渲染 */ public onListRender(item: Node, index: number) { item.getComponent(FriendItem).onDataChange(this.data[index]); } }