| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import { _decorator, Component, Node, Label, Prefab, instantiate, UITransform, Sprite, SpriteFrame } from 'cc';
- import { IFDataSource, InfiniteList } from '../../core/InfiniteList/InfiniteList';
- import { Http } from '../../core/net/Http';
- import { ResourcesUtils } from '../../core/resourceManager/ResourcesUtils';
- import { g } from '../../Data/g';
- import { FriendItem } from '../../Item/FriendItem';
- const { ccclass, property } = _decorator;
- /**查看好友 */
- @ccclass('FriendWindow')
- export class FriendWindow extends Component implements IFDataSource {
- @property({ type: Sprite, tooltip: "标题" })
- titleSprite: Sprite;
- @property({ type: InfiniteList, tooltip: "好友列表" })
- list: InfiniteList;
- @property({ type: Prefab, tooltip: "Item预制体" })
- item: Prefab;
- @property({ type: Http, tooltip: "Http服务" })
- http: Http;
- private prefabHeight: number = 0;
- private data = [];
- start() {
- }
- public async onOpenHandler(friendlv: number = 0) {
- let url = `Images/Title/lv${friendlv + 1}FriendTitle/spriteFrame`;
- if (friendlv > 4) {
- url = `Images/Title/wdmy/spriteFrame`;
- }
- let img = await ResourcesUtils.load<SpriteFrame>(url, SpriteFrame, this.titleSprite.node);
- this.titleSprite.spriteFrame = img;
- if (friendlv == 5 && g.gameData.myFissionData.g1Members.length == 0) {
- let result = await this.http.send("/api/fission/GetFission");
- if (!result.code) {
- g.gameData.myFissionData = result.data.fissionDatas;
- }
- }
- friendlv = friendlv > 4 ? 0 : friendlv;
- this.data = g.gameData.myFissionData[`g${friendlv + 1}Members`];
- for (let i = 0; i < this.data.length; i++) {
- this.data[i].friendLv = friendlv;
- }
- let prefab = instantiate(this.item);
- this.prefabHeight = prefab.getComponent(UITransform).height;
- this.list.Init(this);
- }
- //#region IFDataSource
- public GetCellData(dataIndex: number): any {
- return this.data[dataIndex];
- }
- public GetCellNumber(): number {
- return this.data.length;
- }
- public GetCellSize(index: number): number {
- return this.prefabHeight;
- }
- public GetCellView(index: number): FriendItem {
- let node = instantiate(this.item);
- return node.getComponent(FriendItem);
- }
- public GetCellIdentifer(index: number): string {
- return "FriendItem";
- }
- }
|