BallUIRanking.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import {
  2. _decorator,
  3. Component,
  4. instantiate,
  5. Node,
  6. Prefab,
  7. ScrollView,
  8. } from "cc";
  9. import BaseUI from "../base/BaseUI";
  10. import { ModuleDef } from "../../scripts/ModuleDef";
  11. import { GameUILayers } from "../../scripts/GameUILayers";
  12. import { AB } from "../base/AB";
  13. import { RankingPlayerItem } from "../ui_items/RankingPlayerItem";
  14. import { Lobby } from "./Lobby";
  15. import { CommonTabsTitle } from "../ui_base/CommonTabsTitle";
  16. const { ccclass, property } = _decorator;
  17. @ccclass("BallUIRanking")
  18. export class BallUIRanking extends BaseUI {
  19. static show() {
  20. tgx.UIMgr.inst.show(
  21. ModuleDef.BALL,
  22. "ui_lobby/ui_ranking",
  23. GameUILayers.POPUP
  24. );
  25. }
  26. protected onDestroy(): void {
  27. Lobby.ins.enter();
  28. }
  29. private _ScrollView: ScrollView;
  30. private _tpl: Node;
  31. private _tabs: CommonTabsTitle;
  32. protected onLoad(): void {
  33. super.onLoad();
  34. this._ScrollView = this.FindAs("ScrollView", ScrollView);
  35. this._tpl = this.FindNode("RankingPlayerItem");
  36. this._tpl.active = false;
  37. let self = this;
  38. this._tabs = this.getComponentInChildren(CommonTabsTitle);
  39. this._tabs.init(["RANKING", "SEASON RANKING"], {
  40. onTabClick(index) {
  41. self.tabSelect(index);
  42. },
  43. });
  44. }
  45. private tabSelect(tab: number) {
  46. this._tabs.setSelect(tab);
  47. this.refreshUI();
  48. }
  49. protected start(): void {
  50. this.tabSelect(0);
  51. }
  52. async refreshUI() {
  53. tgx.UIWaiting.show();
  54. await new Promise((resolve) => setTimeout(resolve, 500));
  55. let start_time = Date.now();
  56. this._ScrollView.content.removeAllChildren();
  57. this.initMyInfo();
  58. for (let i = 0; i < 100; i++) {
  59. let item = instantiate(this._tpl);
  60. item.active = true;
  61. let rankingPlayerItem = item.getComponent(RankingPlayerItem);
  62. let itemData = {
  63. rank: i + 1,
  64. name: "Player " + (i + 1),
  65. score: 1000 + i * 100,
  66. };
  67. item.setPosition(0, 0, 0);
  68. this._ScrollView.content.addChild(item);
  69. rankingPlayerItem.init(itemData);
  70. }
  71. await new Promise((resolve) => setTimeout(resolve, 500));
  72. tgx.UIWaiting.hide();
  73. }
  74. initMyInfo() {
  75. this.setText("lbl_player_name_my", "my little dog");
  76. this.setText("lbl_rank_my", "999+");
  77. this.setText("lbl_score_my", "0");
  78. }
  79. }