SignItem.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const { ccclass, property } = cc._decorator;
  2. /**
  3. * 签到条目 数据分发
  4. * @author 薛鸿潇
  5. */
  6. @ccclass
  7. export default class NewClass extends cc.Component {
  8. @property({ type: cc.Node, displayName: '位置组件' })
  9. private sign_icon_pos: cc.Node[] = [];
  10. @property({ type: cc.Prefab })
  11. private pre_icon: cc.Prefab = null!;;
  12. /** icon节点容器 */
  13. private arr_icon: Array<cc.Node> = [];
  14. onLoad() {
  15. }
  16. start() {
  17. }
  18. /**
  19. * list_data
  20. * @param list_data 数据列表
  21. */
  22. public async setItemData(list_data) {
  23. await this.initItem(list_data);
  24. }
  25. /**
  26. * 数据分发
  27. * @param list_data 数据列表
  28. */
  29. private initItem(list_data) {
  30. const n_count = this.sign_icon_pos.length;
  31. for (let i = 0; i < n_count; i++) {
  32. let item_data = list_data[i];
  33. let icon_item = this.arr_icon[i];
  34. if (!icon_item) {
  35. icon_item = cc.instantiate(this.pre_icon)
  36. icon_item.parent = this.node;
  37. icon_item.setPosition(this.sign_icon_pos[i].getPosition());
  38. this.arr_icon[i] = icon_item;
  39. }
  40. let comp_info = icon_item.getComponent('SignIconItem');
  41. comp_info.setItemData(item_data);
  42. }
  43. }
  44. // update (dt) {}
  45. }