ゲームのスクリーンショットを共有する必要がある Facebook 用の cocos2d-JS でゲームを作成しています。
スクリーンショットを撮ることはできますが、base64 形式またはバイト配列が必要なため、Parse.com サーバーにアップロードできません。スプライトをこの形式に変換する解決策を見つけることができません..これが私のコードなので、addchildを実行すると適切な結果が得られます..コメント付きのコードも追加して、多くのことを試したことを理解するのに役立ちますしかし、同じことを達成できませんでした。
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();
},
実行できる回避策はありますか