cocos2dx-3.17版本editbox创建几千个在win32上会报错

:innocent:3.17版本的editbox创建几千个的时候,一旦点击其中一个editbox就会导致整个电脑花屏。而且通过键盘输入任何内容都不显示。

试试创建10000个是个什么效果??。。。

:yum:一样的啊 反正就是整个win32都出问题了,不点击看起来没问题,一旦响应点击事件就开始各种错了

@Knox

我是创建了3000个开始出的问题

这么多 EditBox 有实际使用场景吗?EditBox 是系统控件,会监听 Windows 的键盘消息什么的,不同于 Sprite

是给策划用来编辑一些地图填入参数的,主要是用在tableview中的,之前没有做复用,刷新的时候cell移除了所有孩子,重新创建的editbox。而且并不是同时创建3000个出的问题,是累计到3000个会出问题,所以另一方面 删除editbox在win32上并没有真正的删除掉?

@leda

这个你能提供一个 demo 吗,这边后续排查一下

在 GitHub 建 issues,附主要代码片段也可以。

我们封装了很多,提起来太麻烦了,这段测试就直接用的原生的写的。

    for i = 1,1000 do
        local editBox = ccui.EditBox:create(cc.size(200,100), "common_dikuang.png",1) 
        editBox:setFont("Helvetica",18);
    end    

这段代码只要累计执行3次以上,仅仅是生成并不需要添加到node上,屏幕上的editbox点开后就无法输入任何东西了,测试的时候发现好像字体大小会有直接影响,字体越大越早出问题。

下面这个图是在出现editbox无法输入后,我先最小化游戏了,再点开它,整个游戏UI很容易就会变成这样


@leda

你这里也没有销毁啊,重复执行三次,还是相当于同时创建了 3000 个

我是间隔了几十秒才创建一次的

@leda 今天回溯到3.3版本的editbox 弹出式那种。。创建很多没有发现问题 就是慢。。。