需求:
使用Laya完成页面截图。并将截图显示在页面上供用户长按保存。
问题:
Laya使用的是canvas,截图功能可以直接使用Laya.stage.canvas方法。截取屏幕上特定区域,获得base64格式的数据。
但问题是,laya的canvas中的ui文件是无法长按识别为图片的。所以需要在index中添加一个额外的image标签,添加在laya的cavans之上。
解决方案:
private screenShots:HTMLImageElement;
public CreateScreenShotDiv(){
this.screenShots = document.getElementById("screenshots") as HTMLImageElement;
}
public CreatePostCard(){
UIManager.Instance.soundicon.visible=false;
Laya.timer.once(10,this,()=>{this.ScreenShot()});
}
private htmlcanvas:Laya.HTMLCanvas;
private canvas:any;
private todataUrl:string;
public ScreenShot(){
let scaleH=UIManager.Instance.scaleH;
//截取canva上593*852大小的区域。
this.htmlcanvas = Laya.stage.drawToCanvas(593*scaleH,852*scaleH,0,0);
//获取canvas