如何在移相器中截取游戏div的截图

时间:2017-07-06 06:12:04

标签: javascript screenshot phaser-framework

我现在正在使用此代码,但它返回一个空白的透明图像:

$(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  });

1 个答案:

答案 0 :(得分:1)

使用Phaser.AUTO将允许使用Phaser.WEBGLPhaser.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;