ServerItem.ts 2.0 KB

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