-
Creator 版本: 3.8
-
目标平台:谷歌浏览器
-
重现方式:新建一个数组,在touchmove的时候,将坐标保存在数组里面,记录并保存到本地,方便下次进入的时候读取,当数组长度超过700或者900的时候,就会报错。
-
首个报错: Array buffer allocation failed
有没有其他方法可以处理一下,1000的长度还是有点不够的
- 之前哪个版本是正常的:
- 手机型号:
- 手机浏览器:
- 编辑器操作系统:
- 重现概率:
Creator 版本: 3.8
目标平台:谷歌浏览器
重现方式:新建一个数组,在touchmove的时候,将坐标保存在数组里面,记录并保存到本地,方便下次进入的时候读取,当数组长度超过700或者900的时候,就会报错。
首个报错: Array buffer allocation failed
有没有其他方法可以处理一下,1000的长度还是有点不够的
优化数据大小,你应该存的Vec3类型的数据,改成只存xyz三个number,取出来重新创建vec3对象,然后浮点数精度优化一下
这样的话,数组的长度只能再增加个二三百,就还是会报错
用 link 记录
用 map 理论上无限 性能还好
把小数部分去掉
代码咋写啊 我只知道map是个键值对
能给个简单的小代码看看吗,没听过link
把Map.size作为Map的key。
字符串保存用的时候转
数组上千 就出错了? 有怎么脆弱吗
谁知道呢 我坐标从 new vec3(111,111,0),改成"111,111,0"也没什么太大改善
map的话也就是多了400左右,也蹦了,只能曲线救国了
创建数组的时候就预先分配一个足够大的空间呢?我感觉你像在不断push?
对 move每次变动我都会保存在数组里面,怎么预先分配啊
我觉得可以试一下,不过我用的是2.4更多emm
let posArr = new Array<Vec3>(100000);
let posArrIdx = 0;
posArr[posArrIdx++] = cc.v3(pos);
感谢 我去试试