CCWechatScreenShotMgr.js
4.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
"use strict";
cc._RF.push(module, '30a8a4KflZMb4d4TT1dV25C', 'CCWechatScreenShotMgr');
// script/common/CCWechatScreenShotMgr.ts
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
let CCWechatScreenShotMgr = /** @class */ (() => {
class CCWechatScreenShotMgr {
static getInstance() {
return CCWechatScreenShotMgr._instance;
}
/**
*
* @param worldPos 节点的世界坐标
* @param width 节点的宽度
* @param height 节点的高度
*/
doShot(worldPos, width, height, successCallback = () => { }, successCheckCallback = () => false, shareFailCallback = () => { }, failCallback = () => { }, completeCallback = () => { }) {
if (cc.sys.platform === cc.sys.WECHAT_GAME) {
if (!wx.showShareImageMenu) {
console.log("截图失败");
shareFailCallback();
return;
}
const ccCanvas = cc.find("Canvas");
const xscale = (worldPos.x - width / 2) / ccCanvas.width;
const yscale = 1 - (worldPos.y + height / 2) / ccCanvas.height;
let x = canvas.width * xscale;
let y = canvas.height * yscale;
const w = width / ccCanvas.width * canvas.width;
const h = height / ccCanvas.height * canvas.height;
let data = {
x: x,
y: y,
width: w,
height: h,
destWidth: w,
destHeight: h,
fileType: 'png',
quality: 1,
success: (res) => {
if (successCheckCallback() === false) {
console.log("截图界面被关闭");
return;
}
console.log("截图成功");
console.log("res: ", res);
console.log("res.tempFilePath: ", res.tempFilePath);
wx.showShareImageMenu({
path: res.tempFilePath
});
// //分享卡片
// wx.shareAppMessage({
// imageUrl: res.tempFilePath
// })
successCallback();
},
fail: (e) => {
console.log("截图失败");
console.log(e);
failCallback();
},
complete: () => {
console.log("截图完成");
completeCallback();
}
};
let _tempFilePath = canvas.toTempFilePath(data);
cc.log(`Capture file success!${_tempFilePath}`);
}
}
shotFullScreen(successCallback = () => { }, successCheckCallback = () => false, shareFailCallback = () => { }, failCallback = () => { }, completeCallback = () => { }) {
if (cc.sys.platform === cc.sys.WECHAT_GAME) {
//canvas 是微信的,报错不用管
//单纯的分享一张图
if (!wx.showShareImageMenu) {
console.log("截图失败");
shareFailCallback();
return;
}
canvas.toTempFilePath({
success: (res) => {
if (successCheckCallback() === false) {
console.log("截图界面被关闭");
return;
}
console.log("截图成功");
wx.showShareImageMenu({
path: res.tempFilePath
});
// //分享卡片
// wx.shareAppMessage({
// imageUrl: res.tempFilePath
// })
successCallback();
},
fail: (e) => {
console.log("截图失败");
console.log(e);
failCallback();
},
complete: () => {
console.log("截图完成");
completeCallback();
}
});
}
}
}
CCWechatScreenShotMgr._instance = new CCWechatScreenShotMgr();
return CCWechatScreenShotMgr;
})();
exports.default = CCWechatScreenShotMgr;
cc._RF.pop();