ServerItem.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { _decorator, Label, Node, Sprite, SpriteFrame } from 'cc';
  2. import { ResKeeper } from '../../../framework/res/ResKeeper';
  3. import { Framework } from '../../../framework/Framework';
  4. import { AudioID } from '../../../framework/config/AudioConf';
  5. import { GameEvent } from '../../data/GameEvent';
  6. import { UserData } from '../../data/UserData';
  7. import { StringUtil } from '../../../framework/util/StringUtil';
  8. import { AccountData } from '../../data/AccountData';
  9. const { ccclass, property } = _decorator;
  10. @ccclass('ServerItem')
  11. export class ServerItem extends ResKeeper {
  12. @property({ type: Label, tooltip: "名字" })
  13. nameTx: Label = null;
  14. @property({ type: Sprite, tooltip: "状态" })
  15. stateIco: Sprite = null;
  16. @property({ type: Node, tooltip: "当前背景" })
  17. nowBg: Node = null;
  18. @property({ type: Label, tooltip: "当前文字" })
  19. nowTx: Label = null;
  20. @property({ type: Label, tooltip: "角色信息" })
  21. userMsg: Label = null;
  22. @property({ type: [SpriteFrame], tooltip: "状态图" })
  23. stateFrame: SpriteFrame[] = [];
  24. private servetData = null
  25. protected onLoad() {
  26. }
  27. init(data) {
  28. this.servetData = data;
  29. this.nameTx.string = this.servetData.name;
  30. this.stateIco.spriteFrame = this.stateFrame[this.servetData.status];
  31. this.nowTx.string = StringUtil.getLanguageData('当前');
  32. let selectSid = AccountData.getSid();
  33. this.nowBg.active = (this.servetData.sid == selectSid);
  34. let str = "";
  35. if(this.servetData.role_name){
  36. str = `[${this.servetData.role_name}]${StringUtil.getLanguageData(`${this.servetData.lv}级`)}`
  37. }
  38. this.userMsg.string = str;
  39. }
  40. protected onDestroy() {
  41. //如果该组件有事件自行取消注释
  42. //Framework.event.removeEvent(this);
  43. super.onDestroy();
  44. }
  45. //如果使用了池中的节点,在该函数内归还,该函数会在onDestroy前调用
  46. onClose() {
  47. }
  48. //UI事件处理
  49. private onTouchButton(event: Event) {
  50. // Framework.audio.playEffect(AudioID.Click);
  51. let target: any = event.target;
  52. AccountData.setSid(this.servetData.sid,false);
  53. Framework.event.fireEvent(GameEvent.SelectServer);
  54. }
  55. }