CocosCreator截屏全黑问题分析:浮点数引起的bug

2020-10-15  本文已影响0人  许彦峰

在官方的截屏案例中,关于截屏的逻辑也算是比较简单,copy到项目中也能正常使用。

但是在部分手机上运行,截屏竟然是透明白,renderTexture.readPixels()返回的像素数据也没有任何问题,而canvas.toDataURL('image/jpeg')死活始终是全黑。

首先想到的是canvas.toDataURL这个api是否存在兼容性问题,写了demo也没有任何问题呀

排查了很久,整整2天,发现context.putImage的数据竟然全是undefined,下图解释了为什么是undefined,太TMD的坑了

image.png

至于cc.visibleRect.height为啥是浮点数,这就不太清楚了,不过这个浮点数的坑,是真的坑!目前官方案例中还存在这样的bug,使用前记得

width = parseInt(width.toFixed(0));
height = parseInt(height.toFixed(0));
上一篇下一篇

猜你喜欢

热点阅读