FriendsIconGroup.ts 1.5 KB

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