我现在正在使用此代码,但它返回一个空白的透明图像:
$(document).ready(function(){
$("#t").click(function() {
html2canvas(document.querySelector("#bracelet_maker"),
{ onrendered: function(canvas){
src = canvas.toDataURL();
window.open(src); } });
});
});
如果我使用game.canvas.toDataUrl();
,则会返回黑色图片。
这就是#bracelet_maker div
中游戏的开始方式var game = new Phaser.Game(width,height,Phaser.AUTO,"bracelte_canvas",{
preload:preload,
create:create,
update:update });
答案 0 :(得分:1)
使用Phaser.AUTO
将允许使用Phaser.WEBGL
或Phaser.CANVAS
,具体取决于您的浏览器支持的内容。
如果您在创建Phaser.CANVAS
时切换到new Phaser.Game
,则应该可以使用canvas
。
例如,在Phaser中绑定 S 键:
function create() {
// ...
var screenshotKey = game.input.keyboard.addKey(Phaser.Keyboard.S);
screenshotKey.onDown.add(function () { window.open(game.canvas.toDataURL());
}
还有preserveDrawingBuffer
也允许您从WebGL捕获,但它必须是set early on in the process。
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', {
preload: preload, create: create, update: update
});
game.preserveDrawingBuffer = true;