"use strict"; cc._RF.push(module, 'cd069RxOCtNuqlSZpsbOkWE', 'cmp.common.itemlayout'); // Scripts/mod/common/cmp.common.itemlayout.js "use strict"; cc.Class({ "extends": cc.Component, properties: { maxCount: { "default": 10, displayName: "上限" }, fabItem: { "default": null, type: cc.Prefab, displayName: "道具预制" }, tag_key: { "default": "", displayName: "标签" } }, // 编辑器特性 editor: { // 允许当前组件在编辑器模式下运行 executeInEditMode: false, // 当本组件添加到节点上后,禁止同类型(含子类)的组件再添加到同一个节点,防止逻辑发生冲突 disallowMultiple: false, // requireComponent 参数用来指定当前组件的依赖组件 requireComponent: cc.Layout }, // 重建列表 // [[id,count]] rebuild: function rebuild(_items, selfCallBack) { if (selfCallBack === void 0) { selfCallBack = null; } // 清空 if (nx.dt.arrEmpty(_items)) { nx.pools.putChildren(this.node); return; } // 重建 nx.gui.hideAllChildren(this.node, ""); var pool = nx.pools.getPool(this.fabItem.name, this.fabItem); var max = Math.min(_items.length, this.maxCount); for (var i = 0; i < max; ++i) { var node = this.node.children[i]; if (!node) { node = pool.get(); node.parent = this.node; var _cmp = nx.gui.getComponent(this, "", cc.Layout); if (_cmp.type == cc.Layout.Type.HORIZONTAL) { node.y = 0; } else if (_cmp.type == cc.Layout.Type.VERTICAL) { node.x = 0; } } node.active = true; var item = _items[i]; var cmp = node.getComponent("nx.fx.sv.expand.item"); cmp.sort_index = i; // 基础规则参数 if (nx.dt.arrNEmpty(item)) { cmp.setData(item[0], item[1], this.tag_key); } else { // 否则视为data2Icon统一数据格式 cmp.setData(item, null, this.tag_key); } //设置单例点击回调 if (cmp.setSelectCall && selfCallBack) { cmp.setSelectCall(selfCallBack); } } } }); cc._RF.pop();