元素多了拖拽父节点特别卡顿,求方案

111.mp4.zip (1.1 MB) 录了个视频

当panelNode里多达上百个节点就很卡顿

代码很简单:

start() {
this.node.on(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
}

_onTouchMove(event){
let touches = event.getTouches();
if (touches.length != 1) {
return;
}
let delta = event.getDelta();
let newPos = this.panelNode.position.add(new Vec3(delta.x, delta.y, 0));
this.panelNode.setPosition(newPos.x, newPos.y);
}

哈哈,10分钟自己解决了。 把所有字段在拖拽前active=false, 确定500ms没有拖拽就表示停下来了,再显示所有字段。 用户体验差距不大,但是流畅的一比啊

有意思的是我就算只拖动其中一个对象也超级卡,还是要把所有对象字段都active=false。
这感觉是不是cocos的性能问题了?

看了你的视频,如果你把不在屏幕内的节点都 active = false, 应该会好很多, drawcall 也会低一些

感觉cocos真的不适合做复杂的web, 我用html纯前端做一定都没性能问题

游戏引擎的渲染方式本身就不适合做web

做了一些优化,从dc 999降到300再降到50。掌握好游戏引擎特性取长补短还是可以做web的

再要优化就要改树型控件,但我想不出来带图标和文字(含中文)的树怎么优化,感觉成本太高。

我擦,NB啊,我赶紧试一下我的