attributes_drop.ts 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. import { _decorator, Component, EditBox, instantiate, Label, Node, Prefab, Size } from 'cc';
  2. import { att_drag_data, other_widget_finish_listen_item } from '../../../data/data';
  3. import { other_drag_list_item } from './other_drag_list_item';
  4. import { other_widget_finish_item } from './other_widget_finish_item';
  5. const { ccclass, property } = _decorator;
  6. @ccclass('attributes_drop')
  7. export class attributes_drop extends Component {
  8. @property(EditBox) drag_width:EditBox = null;
  9. @property(EditBox) drag_height:EditBox = null;
  10. @property(EditBox) drag_x:EditBox = null;
  11. @property(EditBox) drag_y:EditBox = null;
  12. @property(Node) btn_is_err_back_pos:Node = null;
  13. @property(Node) lab_is_err_back_pos:Node = null;
  14. @property(Node) btn_add_other_drag_dis:Node = null;
  15. @property(Node) content:Node = null;
  16. @property(Prefab) other_drag_item:Prefab = null;
  17. @property(Node) btn_add_listen_other_widget_finish_event:Node = null;
  18. @property(Prefab) other_widget_finish_item:Prefab = null;
  19. @property(Node) other_widget_finish_content:Node = null;
  20. private call_back = null;
  21. private _err_back_status_call = null;
  22. private _is_err_drag_back:boolean = false;
  23. private m_data:att_drag_data = null;
  24. public update_att(data:att_drag_data){
  25. this.m_data = data;
  26. this.drag_width.string = data.drag_size_width.toString()
  27. this.drag_height.string = data.drag_size_height.toString()
  28. this.drag_x.string = data.drag_pos_x.toString()
  29. this.drag_y.string = data.drag_pos_y.toString()
  30. this._is_err_drag_back = data.is_err_drag_back;
  31. this.lab_is_err_back_pos.getComponent(Label).string = this._is_err_drag_back ?"是":"否"
  32. this.content.removeAllChildren()
  33. if(this.m_data.other_drag_list==undefined){
  34. this.m_data.other_drag_list = []
  35. }
  36. for (let index = 0; index < this.m_data.other_drag_list.length; index++) {
  37. let item = instantiate(this.other_drag_item)
  38. item.parent = this.content;
  39. let item_data = this.m_data.other_drag_list[index]
  40. item.getComponent(other_drag_list_item).initView(item_data,this.onOtherDragItemClickDelete.bind(this))
  41. }
  42. if(this.m_data.other_widget_finish_listen_list==undefined){
  43. this.m_data.other_widget_finish_listen_list = []
  44. }
  45. this.other_widget_finish_content.removeAllChildren()
  46. for (let index = 0; index < this.m_data.other_widget_finish_listen_list.length; index++) {
  47. let item = instantiate(this.other_widget_finish_item)
  48. item.parent = this.other_widget_finish_content;
  49. let item_data = this.m_data.other_widget_finish_listen_list[index]
  50. item.getComponent(other_widget_finish_item).initView(item_data,this.onOtherWidgetFinishListenItemClickDelete.bind(this))
  51. }
  52. }
  53. protected start(): void {
  54. this.drag_width.node.on('editing-did-ended', this.change, this);
  55. this.drag_height.node.on('editing-did-ended', this.change, this);
  56. this.drag_x.node.on('editing-did-ended', this.change, this);
  57. this.drag_y.node.on('editing-did-ended', this.change, this);
  58. this.btn_is_err_back_pos.on(Node.EventType.TOUCH_END,()=>{
  59. if(this._err_back_status_call!=null){
  60. this._is_err_drag_back = !this._is_err_drag_back
  61. this._err_back_status_call(this._is_err_drag_back)
  62. this.lab_is_err_back_pos.getComponent(Label).string = this._is_err_drag_back?"是":"否"
  63. }
  64. })
  65. this.btn_add_other_drag_dis.on(Node.EventType.TOUCH_END,()=>{
  66. this.addOtherDragItem()
  67. })
  68. this.btn_add_listen_other_widget_finish_event.on(Node.EventType.TOUCH_END,()=>{
  69. this.addOtherWidgetFinishListenItem()
  70. })
  71. }
  72. public initView(call,err_back_status_call){
  73. this.call_back = call;
  74. this._err_back_status_call = err_back_status_call;
  75. }
  76. addOtherWidgetFinishListenItem(){
  77. let item = instantiate(this.other_widget_finish_item)
  78. item.parent = this.other_widget_finish_content;
  79. let item_data = new other_widget_finish_listen_item;
  80. this.m_data.other_widget_finish_listen_list.push(item_data)
  81. item.getComponent(other_widget_finish_item).initView(this.m_data.other_widget_finish_listen_list[this.m_data.other_widget_finish_listen_list.length-1],this.onOtherWidgetFinishListenItemClickDelete.bind(this))
  82. this.change()
  83. }
  84. onOtherWidgetFinishListenItemClickDelete(data:other_widget_finish_listen_item){
  85. let index = this.m_data.other_widget_finish_listen_list.indexOf(data)
  86. this.m_data.other_widget_finish_listen_list.splice(index,1)
  87. this.change()
  88. }
  89. addOtherDragItem(){
  90. let item = instantiate(this.other_drag_item)
  91. item.parent = this.content;
  92. let item_data = new att_drag_data
  93. item_data.drag_pos_x = this.m_data.drag_pos_x+50;
  94. item_data.drag_pos_y = this.m_data.drag_pos_y;
  95. item_data.drag_size_width = this.m_data.drag_size_width;
  96. item_data.drag_size_height = this.m_data.drag_size_height;
  97. this.m_data.other_drag_list.push(item_data)
  98. item.getComponent(other_drag_list_item).initView(this.m_data.other_drag_list[this.m_data.other_drag_list.length-1],this.onOtherDragItemClickDelete.bind(this))
  99. this.change()
  100. }
  101. onOtherDragItemClickDelete(data:att_drag_data){
  102. let index = this.m_data.other_drag_list.indexOf(data)
  103. this.m_data.other_drag_list.splice(index,1)
  104. this.change()
  105. }
  106. change(){
  107. this.m_data.drag_pos_x = parseInt(this.drag_x.string);
  108. this.m_data.drag_pos_y = parseInt(this.drag_y.string);
  109. this.m_data.drag_size_width = parseInt(this.drag_width.string);
  110. this.m_data.drag_size_height = parseInt(this.drag_height.string);
  111. if(this.call_back!=null){
  112. this.call_back(this.m_data)
  113. }
  114. }
  115. }