请问WEB平台怎么进行截屏操作?

如题,web平台怎么截屏,求大神指教。

就不能在论坛上 搜索一下吗?答案很多啊

http://forum.cocos.com/t/creator/38461/15

我提前大致搜索了一下没找好的方法所以开贴求答案了(伸手党求原谅)。我用这里的提供的canvas.toDataURL()方法,但是结果获取的是一张透明的图片(Google浏览器),是什么原因啊?

我试了一下我用这个方法截图,在360浏览器里面获得的base64可以转成正确的图片,但是google浏览器里面获取的base64只能转成一张透明的空图片

怎么解决?

設定buffer:true

请问下具体如何设定buffer:true,有相关帖子或者文档么?

请问下具体如何设定buffer:true,有相关帖子或者文档么?

找到 cocos2d-js.js 中尋找:antialias: cc.sys.isMobile 找到後在下面加入 preserveDrawingBuffer: true
然後就可以使用 canvas.toDataURL(“image/jpeg”, 0.9); 截螢幕了。

按照楼上所说,尝试确实可以。不过奇怪,为啥官方不直接添加呢?

这可能会带来性能影响。https://github.com/mrdoob/three.js/pull/421#issuecomment-1792008

确实,经测试,在qq空间玩吧上,小米4手机差异明显。加了之后声音也变顿一顿。

不加preserveDrawingBuffer也可以实现,在渲染完成之后执行canvas.toDataURL 即可。这样不会因preserveDrawingBuffer而导致性能受到影响。

相关事件:
cc.Director.EVENT_AFTER_DRAW

2赞

感谢scot333 , 已去除preserveDrawingBuffer,并成功使用此事件,完成截屏了。

能提供一下相关代码吗… 谢谢了