const { ccclass, property } = cc._decorator; @ccclass export default class FriendsIconGroup extends cc.Component { @property({ type: cc.Node, displayName: '位置组件' }) private sign_icon_pos: cc.Node[] = []; @property({ type: cc.Prefab }) private pre_icon: cc.Prefab = null; /** icon节点容器 */ private arr_icon: Array = []; /** * list_data * @param list_data 数据列表 */ public async setItemData(list_data) { this.initItem(list_data); } /** * 数据分发 * @param list_data 数据列表 */ private initItem(list_data) { const n_count = this.sign_icon_pos.length; for (let i = 0; i < n_count; i++) { if(i < list_data.length) { let item_data = list_data[i]; let icon_item = this.arr_icon[i]; if (!icon_item) { icon_item = cc.instantiate(this.pre_icon) icon_item.parent = this.node; icon_item.setPosition(this.sign_icon_pos[i].getPosition()); this.arr_icon[i] = icon_item; } let comp_info = icon_item.getComponent('FriendsIcon'); comp_info.setItemData(item_data); }else{ let icon_item = this.arr_icon[i]; if(icon_item) { icon_item.x = 2000; } } } } }