event_play_ani_view.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import { _decorator, Component, Label, Node } from 'cc';
  2. import { att_ani_data, attributes_data, event_item_play_ani, widget_item_data } from '../../../data/data';
  3. import { Attributes } from '../Attributes';
  4. import { tools } from '../../tools';
  5. import { ClientEvent } from '../../clientEvent';
  6. import { config } from '../../config';
  7. const { ccclass, property } = _decorator;
  8. @ccclass('event_play_ani_view')
  9. export class event_play_ani_view extends Component {
  10. private m_data:event_item_play_ani = null;
  11. @property(Node) btn_widget_pos:Node = null;
  12. @property(Node) btn_select_widget:Node = null;
  13. @property(Node) btn_select_ani_id:Node = null;
  14. @property(Node) lab_cur_select_widget:Node = null;
  15. @property(Node) lab_cur_select_ani:Node = null;
  16. private m_widget_item_data:widget_item_data = null;
  17. public initView(data:event_item_play_ani){
  18. this.m_data = data;
  19. this.btn_select_widget.on(Node.EventType.TOUCH_END,()=>{
  20. let list = Attributes.Singleton.get_cur_scene_all_only_widget()
  21. if(list.length<=0){
  22. return tools.showToast("当前场景没有添加控件!")
  23. }
  24. tools.show_select_widget_list(list,(item:widget_item_data)=>{
  25. this.m_data.binding_widget_id = item.att.id;
  26. this.updateStatus(item)
  27. },this.m_data.binding_widget_id)
  28. })
  29. this.btn_select_ani_id.on(Node.EventType.TOUCH_END,()=>{
  30. if(this.m_data.binding_widget_id===-1){
  31. return tools.showToast("请先绑定控件")
  32. }
  33. if(this.m_widget_item_data===null){
  34. this.m_widget_item_data = Attributes.Singleton.get_cur_scene_widget_by_id(this.m_data.binding_widget_id)
  35. }
  36. if(this.m_widget_item_data.att.animation_list.length<=0){
  37. return tools.showToast("当前控件没有添加动画!")
  38. }
  39. tools.show_select_animation_list(this.m_widget_item_data.att.animation_list,(item:att_ani_data)=>{
  40. this.m_data.ani_id = item.ani_id;
  41. this.updateStatus(this.m_widget_item_data)
  42. },this.m_data.ani_id)
  43. })
  44. this.btn_widget_pos.on(Node.EventType.TOUCH_END,()=>{
  45. if(this.m_data.binding_widget_id===-1){
  46. return tools.showToast("当前没有设置控件")
  47. }
  48. if(this.m_widget_item_data===null){
  49. this.m_widget_item_data = Attributes.Singleton.get_cur_scene_widget_by_id(this.m_data.binding_widget_id)
  50. }
  51. let page = Attributes.Singleton.get_widget_at_page_by_widget(this.m_widget_item_data)
  52. ClientEvent.dispatchEvent(config.Event.ChangeSelectPage,page)
  53. ClientEvent.dispatchEvent(config.Event.UpdateAttributesToView,this.m_widget_item_data.att,config.attributes_list_type.find_widget_pos)
  54. })
  55. this.updateStatus()
  56. ClientEvent.on(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
  57. }
  58. protected onDestroy(): void {
  59. ClientEvent.off(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
  60. }
  61. UpdateAttributesToView(data:attributes_data,update_type:string){
  62. if(this.m_widget_item_data!=null){
  63. if(this.m_widget_item_data.att.id===data.id&&update_type===config.attributes_list_type.delete){
  64. this.m_widget_item_data = null;
  65. this.m_data.binding_widget_id= -1;
  66. this.m_data.ani_id = -1;
  67. this.updateStatus()
  68. }
  69. }
  70. }
  71. updateStatus(item:widget_item_data=null){
  72. if(this.m_data.binding_widget_id===-1){ //说明未绑定
  73. this.btn_widget_pos.active = false;
  74. this.lab_cur_select_widget.getComponent(Label).string = "未绑定控件"
  75. this.lab_cur_select_ani.getComponent(Label).string = "未选择动画"
  76. } else{
  77. if(item!=null){
  78. this.m_widget_item_data = item;
  79. this.lab_cur_select_widget.getComponent(Label).string = `id:${item.att.id}`
  80. if(this.m_data.ani_id===-1){//说明未选择动画
  81. }else{
  82. this.lab_cur_select_ani.getComponent(Label).string = `动画id:${this.m_data.ani_id}`
  83. }
  84. }
  85. if(this.m_widget_item_data===null){
  86. this.m_widget_item_data = Attributes.Singleton.get_cur_scene_widget_by_id(this.m_data.binding_widget_id)
  87. }
  88. this.btn_widget_pos.active = true;
  89. if(this.m_widget_item_data!=null){
  90. this.lab_cur_select_ani.getComponent(Label).string = `动画id:${this.m_data.ani_id}`
  91. this.lab_cur_select_widget.getComponent(Label).string = `id:${this.m_widget_item_data.att.id}`
  92. }
  93. }
  94. }
  95. }