背包降dc的问题
好像我直接创建1000个icon+label的dc也很低啊为什么会有那么多人需要优化这个的dc?
/*
-
@Author: hzxOnlineOk
-
@Date: 2024-11-07 10:09:19
-
@LastEditors: Please set LastEditors
-
@LastEditTime: 2024-11-07 14:46:15
-
@Description: 请填写简介
*/
import { _decorator, Color, Component, Label, Layout, Node, Sprite, SpriteFrame, UITransform } from ‘cc’;
const { ccclass, property } = _decorator;
/***
*/
@ccclass(‘test’)
export class test extends Component {
@property(SpriteFrame)
spriteFrame: SpriteFrame = null;
@property(SpriteFrame)
spriteFrame1: SpriteFrame = null;
images // 图片父节点
labels // 文字父节点
itemCount = 1000 // item数量
start() {
this.decDC();
// this.noDecDC()
}
/**
* 创建一个item
* @param data 数据 现在假设label+image
*/
createrItem(data: any) {
let item = new Node("item");
let label = new Node("label");
label.addComponent(Label).string = data.label;
label.getComponent(Label).color = Color.BLACK;
label.getComponent(Label).cacheMode = Label.CacheMode.BITMAP;
let image = new Node("image");
image.addComponent(Sprite).spriteFrame = Math.random() > 0.5 ? this.spriteFrame : this.spriteFrame1//data.image;
this.images.addChild(image);
this.labels.addChild(label);
image.getComponent(UITransform).setContentSize(130, 50)
item.addComponent(UITransform).setContentSize(130, 50)
label.setPosition(0, 30 - data.position * 55 - 55);
// label.setPosition(0, image.getComponent(UITransform).height);
// this.node.addChild(item);
}
/**
* 创建一个item
* @param data 数据 现在假设label+image
*/
createrItem1(data: any) {
let item = new Node("item");
let label = new Node("label");
label.addComponent(Label).string = data.label;
label.getComponent(Label).color = Color.BLACK;
label.getComponent(Label).cacheMode = Label.CacheMode.BITMAP;
let image = new Node("image");
image.addComponent(Sprite).spriteFrame = this.spriteFrame//data.image;
item.addChild(image);
item.addChild(label);
image.getComponent(UITransform).setContentSize(130, 50)
item.addComponent(UITransform).setContentSize(130, 50)
this.node.addChild(item);
}
noDecDC() {
for (let i = 0; i < this.itemCount; i++) {
this.createrItem1({ label: "123", image: this.spriteFrame, position: i });
}
}
decDC() {
this.node.getComponent(Layout).enabled = false;
let labels = new Node("labels");
let images = new Node("images");
images.addComponent(Layout);
images.getComponent(Layout).type = Layout.Type.VERTICAL;
images.getComponent(Layout).paddingTop = 50
images.getComponent(Layout).spacingY = 5
this.node.addChild(images);
this.node.addChild(labels);
this.images = images;
this.labels = labels;
for (let i = 0; i < this.itemCount; i++) {
this.createrItem({ label: "123", image: this.spriteFrame, position: i });
}
this.node.getComponent(UITransform).setContentSize(130, (50 + 5) * this.itemCount);
}
update(deltaTime: number) {
}
}
