81 lines
2.2 KiB
JavaScript
81 lines
2.2 KiB
JavaScript
|
|
"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();
|