HeroList.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import { _decorator, Label, Node } from 'cc';
  2. import { BaseView } from '../../../framework/layer/BaseView';
  3. import List from '../../../framework/list/List';
  4. import { StringUtil } from '../../../framework/util/StringUtil';
  5. import { HeroListItem, heroListItemData } from './HeroListItem';
  6. import { RoleManager } from '../../manager/RoleManager';
  7. import { EquipManager } from '../../manager/EquipManager';
  8. import { Framework } from '../../../framework/Framework';
  9. import { GameEvent } from '../../data/GameEvent';
  10. const { ccclass, property } = _decorator;
  11. @ccclass('HeroList')
  12. export class HeroList extends BaseView {
  13. @property({ type: Label, tooltip: "标题" })
  14. titleTx: Label = null;
  15. @property({ type: List, tooltip: "滑动容器" })
  16. sv: List = null;
  17. private _herosData: Array<heroListItemData> = [];
  18. protected onLoad() {
  19. super.onLoad();
  20. this.titleTx.string = StringUtil.getLanguageData('英雄列表');
  21. let herodata = RoleManager.getRolesRaceGroup();
  22. let equipData = EquipManager.getEquipWearRaceGroup();
  23. for (let index = 0; index < 4; index++) {
  24. let t: heroListItemData = { race: index + 1, heros: herodata[index + 1], equips: equipData[index + 1] }
  25. this._herosData.push(t);
  26. }
  27. this.sv.numItems = this._herosData.length;
  28. Framework.event.addEvent(GameEvent.EquipWearChange, (race) => {
  29. let herodata = RoleManager.getRolesRaceGroup();
  30. let equipData = EquipManager.getEquipWearRaceGroup();
  31. let t: heroListItemData = { race: race, heros: herodata[race], equips: equipData[race] }
  32. // this._herosData[race - 1] = t;
  33. let item = this.sv.content.getChildByName('race_' + race);
  34. if(item){
  35. item.getComponent(HeroListItem).refreshItem(t);
  36. }
  37. }, this);
  38. }
  39. protected onDestroy() {
  40. }
  41. //UI开打时会调用,如果有初始化代码应该放到此函数
  42. onOpen() {
  43. }
  44. //UI关闭时会调用,该函数在onDestroy前调用
  45. onClose() {
  46. }
  47. //框架管理UI层级时会调用,可根据UI情况修改
  48. onShow() {
  49. super.onShow();
  50. }
  51. //框架管理UI层级时会调用,可根据UI情况修改
  52. onHide() {
  53. super.onHide();
  54. }
  55. //UI事件处理
  56. private onTouchButton(event: Event) {
  57. //Framework.audio.playEffect(AudioID.Click);
  58. let target: any = event.target;
  59. if (target.name == 'close_btn') {
  60. Framework.layer.close(this)
  61. }
  62. }
  63. onEventList(item, idx) {
  64. item.name = 'race_' + this._herosData[idx].race;
  65. item.getComponent(HeroListItem).refreshItem(this._herosData[idx]);
  66. }
  67. }