cocos2d-js 截屏保存到相册问题

下面是代码

function saveScreenShot() {
    var size = cc.director.getWinSize();

    var currentDate = new Date();
    var fileName = currentDate.getFullYear()+""+(currentDate.getMonth()+1)+""
            +currentDate.getDate()+""+currentDate.getHours()+""+currentDate.getMinutes()+currentDate.getSeconds();

    var texture = new cc.RenderTexture(parseInt(size.width), parseInt(size.height));
    texture.setPosition(cc.p(size.width/2, size.height/2));
    texture.begin();
    cc.director.getRunningScene().visit();
    texture.end();
    texture.saveToFile(fileName+".png", cc.IMAGE_FORMAT_PNG);

    var ret = jsb.reflection.callStaticMethod("NativeOcClass",
        "callNativeUIWithTitle:andContent:",
        "cocos2d-js",
        fileName);
}


```


@implementation NativeOcClass
+(BOOL)callNativeUIWithTitle:(NSString *) title andContent:(NSString *) content {
    
    NSString* filePath = ;
    UIImage *viewImage = ;
    if (viewImage != nil) {
        UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
        
        UIAlertView *alertView =  initWithTitle:title message:content delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
        ;
    }
    return true;
}


```


如果使用上一次截屏的文件名,是可以保存的,想请问下texture.saveToFile是异步的吗?

JSB中因为-x的新渲染机制,当前帧的渲染结果在下一帧才会生效

有什么好办法解决吗?

在引擎里面的director有一个notification node的方法,在draw完毕后可以有回调。录屏软件是通过这个api实现。

JSB和H5都有这个api,你可以试试在那个时间点去保存屏幕图像。

我看看,谢谢解答。

新EventManager中也能支持,可查看newEventManagerTest的DirectorEventTest

嗯,可以了,非常感谢,看来还得多看看js-tests,可以学到不少知识点。

能麻烦你把代码发给我么?我不会弄

929013100@qq.com

非常感谢你!

楼主,你好,我想问两个问题。如果你有时间,还请你解答一下。
1、屏幕截图保存后,默认的根目录在哪里,要用的这张照片的时候怎么取出来呢?
2、如果想要后面截取得屏幕 替换 前面截取的屏幕,是不是只要文件名固定就直接替换了?
谢谢!

— Begin quote from ____

引用第8楼fengyunzxd于2015-08-10 09:34发表的 回 楼主(yourihua) 的帖子 :
楼主,你好,我想问两个问题。如果你有时间,还请你解答一下。
1、屏幕截图保存后,默认的根目录在哪里,要用的这张照片的时候怎么取出来呢?
2、如果想要后面截取得屏幕 替换 前面截取的屏幕,是不是只要文件名固定就直接替换了?
谢谢! http://www.cocoachina.com/bbs/job.php?action=topost&tid=225469&pid=1365044

— End quote

1、同问。

2、另外如何直接调用手机相册照片、视频?