截图之后黑屏, cc.director.on(cc.Director.EVENT_AFTER_DRAW, callback.bind(this));

cc.director.on(cc.Director.EVENT_AFTER_DRAW, callback.bind(this));
使用这种方式截图,没有等待时间,
但是截图之后场景全没了

使用全屏截图,再把截图的图片高斯模糊之后盖在上面,基本要做到没有延迟时间,并且性能没有多少损耗的情况,

我目前不知道使用哪种方式

@引擎组

有大神解决么

这应该是你要的效果,可以参考一下他的实现:
https://forum.cocos.com/t/cocos-creator-2-1-1/77641

我这边使用的引擎是2.0.9 而且高斯模糊用shader 实现了,只有截图目前有问题

我这边使用的引擎是2.0.9 而且高斯模糊用shader 实现了,只有截图目前有问题

有大神帮忙解决一下么:joy:

web平台还是微信小游戏?

H5 平台

我把这两行注释掉就没事,
renderSprite是截图显示的node

好像 只要界面改变之后,就直接黑屏了

截屏之后 这些都不动了

求大神解决一下

cc.director.once 用这个截屏之后fps都在动,但是也是黑屏

web截屏

有大神帮忙解决一下么

可以提供一下demo,为什么要放在cc.Director.EVENT_AFTER_DRAW事件的监听回调里面去做截图呢?

你好,能帮忙看一下我的问题吗?就这个一个问题不知道怎么解决。谢谢 https://forum.cocos.com/t/vivo/78410?u=1013910410

请问截图,然后加载到场景解决了嘛? 我目前h5下解决了,微信平台下没解决。目前也要做截图加shader的功能,求交流

你好,我现在在微信下截图,然后加载到场景中,发现截图成功,生成图片为http:xxx.png,然后在创建精灵的时间,发现texture是不对的,尝试了好几种方案都没成功。最后显示没有图,求指导。代码如下:

toTempFilePathWx () {
var scheduler = cc.director.getScheduler();
var self= this;
scheduler.schedule(function () {
var canvas = wx.createCanvas();
var sceneSize = cc.director.getWinSize();
canvas.width = sceneSize.width;
canvas.height = sceneSize.height;
// canvas坐标左上角开始算 toTempFilePathSync 异步接口
canvas.toTempFilePath({
x: 0,
y:0,
width: sceneSize.width,
height: sceneSize.height,
destWidth: sceneSize.width,
destHeight: sceneSize.height,
fileType: ‘png’,
quality: 1,
success: function (res) {
let picUrl = res.tempFilePath;
self.sceneAddPic(picUrl);
},

            fail: function () { }
        });
    }, this, 0, 0, 0, false);

},

sceneAddPic (urlimg) {
    var node = new cc.Node("New Node");
    var sprite = node.addComponent(cc.Sprite);
    node.parent = this.addNode;//cc.director.getScene();
    node.anchorX = 0;
    node.anchorY = 0;
    node.x = 360;
    node.y = 640;

    /*var textures = new cc.Texture2D();
     textures.initWithElement(urlimg);

     let spriteFrame = new cc.SpriteFrame();
     spriteFrame.setTexture(textures);
     sprite.spriteFrame = spriteFrame;*/



    /*var img = new Image();
     var texture = new cc.Texture2D();
     img.src = urlimg;
     texture.initWithElement(img);
     let spriteFrame = new cc.SpriteFrame();
     spriteFrame.setTexture(texture);
     sprite.spriteFrame = spriteFrame;*/

    var image = new Image();
    image.src = urlimg;
    image.onload = function () {
        try{
            image.onload = null;
            image.onerror = null;
            var texture = new cc.Texture2D();
            texture.initWithElement(image);
            texture.handleLoadedTexture();
            let spriteFrame = new cc.SpriteFrame();
            spriteFrame.setTexture(texture);
            sprite.spriteFrame = spriteFrame;
        }catch(e){}
    };

    /*cc.loader.load(urlimg, (err, texture)=>{
     let spriteFrame = new cc.SpriteFrame();
     spriteFrame.setTexture(texture);
     sprite.spriteFrame = spriteFrame;
     });*/

    /*cc.assetManager.loadRemote(urlimg, (err, texture)=>{
     let spriteFrame = new cc.SpriteFrame();
     spriteFrame.setTexture(texture);
     sprite.spriteFrame = spriteFrame;
     });*/
},

问下找到解决办法了吗问下,我也找到这个案例用了,windows下也正常,上微信小游戏就截图黑屏,而且有截图大于2048的情况