ui_base.ts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import { _decorator, Component, Node, Size, Sprite, UITransform } from 'cc';
  2. import { att_top_data, event_item, ui_att_item, widget_item_data } from '../../../data/data';
  3. import { tools } from '../../tools';
  4. import { gameManager } from '../gameManager';
  5. import { ClientEvent } from '../../clientEvent';
  6. import { config } from '../../config';
  7. const { ccclass, property } = _decorator;
  8. @ccclass('ui_base')
  9. export class ui_base extends Component {
  10. @property(Node) btn_close:Node = null;
  11. @property(Node) btn_jump:Node = null;
  12. @property(Node) bg:Node = null;
  13. protected mData:widget_item_data = null;
  14. protected mTopData:att_top_data = null;
  15. protected mIsFinish:boolean = false;
  16. protected initWidget(data:widget_item_data){
  17. this.mData = data;
  18. this.node.active = false;
  19. this.mTopData = this.mData.att.top_data;
  20. if(this.mTopData===null){
  21. tools.showToast("初始化ui错误")
  22. return;
  23. }
  24. if(this.mTopData.is_open_close){
  25. this.btn_close.active = true;
  26. this.btn_close.off(Node.EventType.TOUCH_END)
  27. this.btn_close.on(Node.EventType.TOUCH_END,()=>{
  28. this.close()
  29. })
  30. this.node.off(Node.EventType.TOUCH_START)
  31. this.node.on(Node.EventType.TOUCH_START,()=>{
  32. this.close()
  33. })
  34. gameManager.initUiBaseAtt(this.btn_close,this.mTopData.close_info)
  35. }else{
  36. this.btn_close.active = false;
  37. }
  38. if(this.mTopData.is_open_jump){
  39. this.btn_jump.active = true;
  40. gameManager.initUiBaseAtt(this.btn_jump,this.mTopData.jump_info)
  41. }else{
  42. this.btn_jump.active = false;
  43. }
  44. this.init()
  45. ClientEvent.on(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
  46. };
  47. protected onDestroy(): void {
  48. ClientEvent.off(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
  49. }
  50. beActive(widgetId:number,event:event_item){
  51. if(widgetId===this.mData.att.id){
  52. if(event.type==config.event_type.active_event){
  53. this.show()
  54. }
  55. }
  56. }
  57. close(){
  58. this.hide()
  59. this.onCloseEvent()
  60. }
  61. public show(){
  62. console.log("fuck!")
  63. this.node.active = true;
  64. this.onShow()
  65. }
  66. protected onShow(){
  67. }
  68. public hide(isDispatchEvent:boolean=true){
  69. this.node.active = false;
  70. if(isDispatchEvent) {
  71. ClientEvent.dispatchEvent(config.EventRun.TOP_VIEW_HIDE,this.mData.att.id)
  72. }
  73. }
  74. protected loadBg(bgInfo:ui_att_item){
  75. if(bgInfo.res_name.length>0){
  76. gameManager.initUiBaseAtt(this.bg,bgInfo)
  77. }
  78. }
  79. protected onCloseEvent(){
  80. if(this.mTopData.close_event_id!=-1){
  81. ClientEvent.dispatchEvent(config.EventRun.TOP_VIEW_CLOSE,this.mTopData.close_event_id)
  82. }
  83. }
  84. protected onFinishEvent(){
  85. this.mIsFinish = true;
  86. this.hide()
  87. console.log("his.mTopData.finish_event_id",this.mTopData.finish_event_id)
  88. if(this.mTopData.finish_event_id!=-1){
  89. ClientEvent.dispatchEvent(config.EventRun.TOP_VIEW_FINISH,this.mTopData.finish_event_id)
  90. }
  91. }; //完成自身
  92. protected onFialEvent(){
  93. this.hide()
  94. if(this.mTopData.fail_event_id!=-1){
  95. ClientEvent.dispatchEvent(config.EventRun.TOP_VIEW_FAIL,this.mTopData.fail_event_id)
  96. }
  97. }; // 失败完成
  98. protected init(){};
  99. public initView(data:widget_item_data){
  100. this.initWidget(data)
  101. };
  102. }