-
Creator 版本:2.3.1
-
目标平台: Android / 模拟器
-
详细报错信息,包含调用堆栈:无报错
-
重现方式:截图毕出现
-
之前哪个版本是正常的 :
-
手机型号 :
-
手机浏览器 :
-
编辑器操作系统 :
-
编辑器之前是否有其它报错 :
-
出现概率:100%
-
额外线索:我传入的target就是一个sprite节点,节点下什么都没有
截图代码
public static Screenshots (target: cc.Node) {
var width = Math.floor(target.width);
var height = Math.floor(target.height);
if (CC_JSB) {
var fileName = “screenshots.jpg”;
var fullPath = jsb.fileUtils.getWritablePath()+“TEST/”+ fileName;
// if (cc.sys.os == cc.sys.OS_ANDROID) fullPath = ‘/sdcard/qrcode.jpg’;
if (jsb.fileUtils.isFileExist(fullPath)) {
jsb.fileUtils.removeFile(fullPath);
}
var cameraNode = new cc.Node();
cameraNode.parent = target;
// cameraNode.zIndex = -1;
var camera = cameraNode.addComponent(cc.Camera);
camera.cullingMask = 0xffffffff;
var texture = new cc.RenderTexture();
texture.initWithSize(width, height);
camera.targetTexture = texture;
camera.render(null);
var data = texture.readPixels();
target.removeChild(cameraNode);
//以下代码将截图后默认倒置的图片回正
var picData = new Uint8Array(width * height * 4);
var rowBytes = width * 4;
for (var row = 0; row < height; row++) {
var srow = height - 1 - row;
var start = Math.floor(srow * width * 4);
var reStart = row * width * 4;
// save the piexls data
for (var i = 0; i < rowBytes; i++) {
picData[reStart + i] = data[start + i];
}
}
//保存图片
(jsb).saveImageData(picData, width, height, fullPath);
console.log("截图路径: ",fullPath)
}
}
