res_interact_page.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import { _decorator, Component, EditBox, instantiate, Node } from 'cc';
  2. import { interact_page_data, ui_att_item } from '../../../data/data';
  3. import { receive_res_item } from './receive_res_item';
  4. import { tools } from '../../tools';
  5. import { Attributes } from '../Attributes';
  6. import { config } from '../../config';
  7. import { ClientEvent } from '../../clientEvent';
  8. const { ccclass, property } = _decorator;
  9. @ccclass('res_interact_page')
  10. export class res_interact_page extends Component {
  11. @property(Node) bg:Node = null;
  12. @property(Node) btn_interact_left:Node = null;
  13. @property(Node) btn_interact_right:Node = null;
  14. @property(Node) img_item_interact_bg:Node = null;
  15. @property(Node) btn_sure:Node = null;
  16. @property(Node) img_item_interact:Node = null;
  17. @property(Node) btn_add:Node = null;
  18. @property(Node) btn_sub:Node = null;
  19. @property(Node) content:Node = null;
  20. @property(EditBox) delete_index_eb:EditBox = null;
  21. private img_item_interact_list:Node[] =null;
  22. private m_data:interact_page_data = null;
  23. protected start(): void {
  24. this.btn_add.on(Node.EventType.TOUCH_END,()=>{
  25. let item = instantiate(this.img_item_interact);
  26. item.parent = this.content;
  27. item.name = `${this.m_data.img_item_interact_list.length}`
  28. let data = new ui_att_item
  29. data.width = 100;
  30. data.height = 100;
  31. this.m_data.img_item_interact_list.push(data)
  32. ClientEvent.dispatchEvent(config.Event.UpdateAttributesToView,Attributes.Singleton.get_cur_att_data(),config.attributes_list_type.top)
  33. item.getComponent(receive_res_item).initView(data)
  34. tools.showToast("添加成功!")
  35. })
  36. this.btn_sub.on(Node.EventType.TOUCH_END,()=>{
  37. let index = parseInt(this.delete_index_eb.string)
  38. if(index===0){
  39. return tools.showToast("不可删除第一个!")
  40. }
  41. if(index<this.m_data.img_item_interact_list.length){
  42. this.removeNodeByName(`${index}`)
  43. this.m_data.img_item_interact_list.splice(index,1)
  44. tools.showToast("删除成功!")
  45. ClientEvent.dispatchEvent(config.Event.UpdateAttributesToView,Attributes.Singleton.get_cur_att_data(),config.attributes_list_type.top)
  46. }else{
  47. return tools.showToast("没有找到该道具")
  48. }
  49. })
  50. }
  51. public initView(data:interact_page_data){
  52. this.m_data = data;
  53. this.bg.getComponent(receive_res_item).initView( this.m_data.bg)
  54. this.btn_interact_left.getComponent(receive_res_item).initView( this.m_data.btn_interact_left)
  55. this.btn_interact_right.getComponent(receive_res_item).initView( this.m_data.btn_interact_right)
  56. this.img_item_interact_bg.getComponent(receive_res_item).initView( this.m_data.img_item_interact_bg)
  57. this.btn_sure.getComponent(receive_res_item).initView( this.m_data.btn_sure)
  58. this.img_item_interact.name = `${0}`
  59. this.img_item_interact.getComponent(receive_res_item).initView( this.m_data.img_item_interact_list[0])
  60. for (let index = 1; index < this.m_data.img_item_interact_list.length; index++) {
  61. let name = `${index}`;
  62. let item = null;
  63. if(this.content.getChildByName(name)!=null){
  64. item = this.content.getChildByName(name);
  65. }else{
  66. item = instantiate(this.img_item_interact);
  67. item.parent = this.content;
  68. item.name = `${index}`
  69. }
  70. item.getComponent(receive_res_item).initView( this.m_data.img_item_interact_list[index])
  71. }
  72. }
  73. public removeNodeByName(name:string){
  74. for (let index = 0; index < this.content.children.length; index++) {
  75. const element = this.content.children[index];
  76. if(element.name===name){
  77. element.destroy()
  78. element.removeFromParent()
  79. return
  80. }
  81. }
  82. }
  83. }