FriendList.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { _decorator, Component, Node, Prefab, Sprite, SpriteFrame } from 'cc';
  2. import { DataSystem } from '../core/data/DataSystem';
  3. import { Http } from '../core/net/Http';
  4. import { ResourceLoader } from '../core/resourceManager/ResourceLoader';
  5. import List from '../core/ui/virtualList/List';
  6. import { FriendItem } from './FriendItem';
  7. import { GodTowerData } from './GodTowerData';
  8. const { ccclass, property, requireComponent } = _decorator;
  9. /**查看好友 */
  10. @ccclass('FriendList')
  11. @requireComponent(Http)
  12. @requireComponent(ResourceLoader)
  13. export class FriendList extends Component {
  14. @property({ type: Sprite, tooltip: "标题" })
  15. titleSprite: Sprite;
  16. @property({ type: List, tooltip: "好友列表" })
  17. list: List;
  18. @property({ type: Prefab, tooltip: "Item预制体" })
  19. item: Prefab;
  20. private data = [];
  21. private infoData: GodTowerData;
  22. start() {
  23. this.infoData = DataSystem.getData(GodTowerData);
  24. }
  25. public async onOpenHandler(friendlv: number = 0) {
  26. let img = await this.getComponent(ResourceLoader).load<SpriteFrame>(`image/friendTitle/friendLvTitle_${friendlv + 1}/spriteFrame`, SpriteFrame);
  27. this.titleSprite.spriteFrame = img;
  28. friendlv = friendlv > 4 ? 0 : friendlv;
  29. this.data = this.infoData[`g${friendlv + 1}Members`];
  30. for (let i = 0; i < this.data.length; i++) {
  31. this.data[i].friendLv = friendlv;
  32. }
  33. this.list.numItems = this.data.length;
  34. }
  35. /**
  36. * 当列表项渲染
  37. */
  38. public onListRender(item: Node, index: number) {
  39. item.getComponent(FriendItem).onDataChange(this.data[index]);
  40. }
  41. }