attributes_drop.ts 4.0 KB

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