bag_list_page.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { _decorator, Component, instantiate, Layout, Node, Prefab, UITransform } from 'cc';
  2. import { bag_list_item_data, bag_type } from '../../data';
  3. import { bag_list_page_item } from './bag_list_page_item';
  4. import { GameManager } from '../../GameManager';
  5. import { uiManager } from '../../manager/uiManager';
  6. import { config } from '../../config';
  7. import { bag_avatar_preview } from './bag_avatar_preview';
  8. const { ccclass, property } = _decorator;
  9. @ccclass('bag_list_page')
  10. export class bag_list_page extends Component {
  11. @property(Node) bg:Node = null
  12. @property(Prefab) page_item:Prefab = null
  13. private cur_xiangkuang_item:bag_list_page_item = null
  14. start() {
  15. let fixed_count = 4
  16. let item = instantiate(this.page_item)
  17. let spacing_x = (this.bg.getComponent(UITransform).width - fixed_count*item.getComponent(UITransform).width) / (fixed_count + 1)
  18. let bg_layout = this.bg.getComponent(Layout)
  19. bg_layout.spacingX = spacing_x
  20. bg_layout.paddingLeft = spacing_x
  21. }
  22. initView(data_list:bag_list_item_data[]) {
  23. for (let index = 0; index < data_list.length; index++) {
  24. const element = data_list[index];
  25. let item = instantiate(this.page_item)
  26. item.parent = this.bg
  27. item.getComponent(bag_list_page_item).initView(element,this.onClickItem.bind(this))
  28. }
  29. }
  30. private onClickItem(item:bag_list_page_item) {
  31. let data = item.getData()
  32. switch (data.stype) {
  33. case bag_type.car_suipian:
  34. GameManager.showExchangeCarView(data.car_id,data.icon,data.quantity,()=>{
  35. data.quantity -= data.quantity
  36. item.setData(data)
  37. })
  38. break;
  39. case bag_type.xiangkuang:
  40. uiManager.Instance().showUi(config.UI.ui_bag_avatar_preview, null, (node:Node)=>{
  41. node.getComponent(bag_avatar_preview).initView()
  42. })
  43. // if(this.cur_xiangkuang_item!=null) {
  44. // if(this.cur_xiangkuang_item.getData().id==data.id) {
  45. // return
  46. // }
  47. // this.cur_xiangkuang_item.setUnselected()
  48. // }
  49. // item.setSelected()
  50. // this.cur_xiangkuang_item = item
  51. break;
  52. case bag_type.daoju:
  53. break;
  54. default:
  55. break;
  56. }
  57. }
  58. }