我正在为 facebook 在 cocos2d-JS 上制作一个游戏,其中需要共享游戏的屏幕截图。
我可以截取屏幕截图,但现在我无法将其上传到 Parse.com 服务器,因为它需要 base64 格式或字节数组。我无法找到将 Sprite 转换为这种格式的任何解决方案。这是我的代码,所以当我添加子时它的结果是正确的。我还添加了我的注释代码,以便它有助于理解我已经尝试了很多事情,但无法达到同样的效果。
shareToSocialNetworking: function () {
cc.director.setNextDeltaTimeZero(true);
var newsize = cc.director.getVisibleSize();
var renderText = new cc.RenderTexture(newsize.width,newsize.height);
renderText.begin();
cc.director.getRunningScene().visit();
renderText.end();
var result = cc.Sprite.create(renderText.getSprite().getTexture());
result.flippedY = true;
this._mainViewNode.addChild(result,6000);
//renderText.saveToFile("screenshot.jpg",cc.IMAGE_FORMAT_PNG);
//var based = renderText.getSprite().getTexture().getStringForFormat().toString();
//var data = based.getData();
var file = new Parse.File("screen.jpg", { base64: this.getBase64(result) });
//var file = new Parse.File("screen.jpg", data, "image/png");
var self = this;
file.save().then(function() {
// The file has been saved to Parse.
alert(file.url);
this.onSharePictureInfoLink(file.url());
}, function(error) {
// The file either could not be read, or could not be saved to Parse.
});
//
//var ccImage = renderText.newCCImage();
//
//var str = ccImage.getData();
},
有什么可以解决的方法吗