强大,战略性mark。
请问如何控制自定义图片的层级
战略性mark
楼主,找不到Wx编译报错,怎么import Wx进来?如果有一个完整的运行demo就好了~
mark
mark
Wx.getShareCanvas();
Wx.isWeChatEnv();
Wx.sendMsgToContext();
建议补充一下SubContextView里面的这三个方法,不然用不了
mark
mark+1
mark
mark
补充Wx 类的依赖 API:
// @ts-ignore
export const wx: any = window.wx || false;
export default class Wx {
public static isWeChatEnv(): boolean {
return !!wx;
}
// 上传微信子域排行数据,可直接在主域中使用.
public static updateUserData(key: string, data: any, sortKey?: string): Promise {
if (!Wx.isWeChatEnv()) {
return Promise.resolve();
}
if (!key || !data) {
return;
}
return new Promise((resolve, reject) => {
data.uuid = “” + Math.random();
// 增加时间戳,用来进行排行数据过滤. data.timestamp = cc.sys.now();
// 增加小游戏中心排行显示. if (sortKey) { data.wxgame = {score: data[sortKey], update_time: data.timestamp} } wx.setUserCloudStorage({ KVDataList: [{ key: key, value: JSON.stringify(data) }], success: function (args) { cc.log("上传排行榜成功.", args); resolve(args); }, fail: function (args) { cc.log("上传排行榜失败.", args); reject(args); } }) }) }
// 删除微信子域数据. public static removeUserData(...keys: string[]) { if (!Wx.isWeChatEnv()) { return } wx.removeUserCloudStorage({ keyList: keys, success() { cc.log("清除玩家数据成功."); }, fail() { cc.log("清除玩家数据失败.", keys); } }) }
public static getShareContext(): any { if (!Wx.isWeChatEnv()) { return null } const context = wx.getOpenDataContext(); return context; }
// 获取子域context. public static getShareCanvas(): any { if (!Wx.isWeChatEnv()) { return null } const context = wx.getOpenDataContext(); return context.canvas }
// 清空子域绘制. public static clearSubContext() { if (!Wx.isWeChatEnv()) { return; } const context = wx.getOpenDataContext(); if (context) { context.width = cc.winSize.width; context.height = cc.winSize.height; cc.log("屏幕尺寸:", cc.winSize); } }
// 向子域同步指令. public static sendMsgToContext(what: number | string, args: any) { const context = this.getShareContext(); if (context == null) { console.info("微信环境异常.无法调用context."); return } context.postMessage({what, arguments: args}); }
// 将子域内容绘制到sprite 上. public static updateSubContextDrawable(subcontextView: cc.Sprite, texture?: cc.Texture2D): Promise<any> { return new Promise<any>((resolve, reject) => { subcontextView.spriteFrame = Wx.getSubContextDrawable(texture);
}) }
// 获取子域drawable. public static getSubContextDrawable(texture?: cc.Texture2D): cc.SpriteFrame { let canvas = this.getShareCanvas(); if (canvas) { let texture2 = texture; if (!texture) { texture2 = this.texture; } texture2.initWithElement(canvas); texture2.handleLoadedTexture(); return new cc.SpriteFrame(texture2) } }
public static clearUserCloudStorage(keys: string[]) { if (Wx.isWeChatEnv()) { wx.removeUserCloudStorage({ keyList: keys || [], success(res) { console.warn("已成功清除微信托管数据", res) } }) } } private static texture: cc.Texture2D = new cc.Texture2D();
}
mark,这个好
mark
score对应的值是string类型的吗?update_time呢?
翻页的子域还是不如滚动的
楼主,来个demo可以吗,按照你的设置。。。显示不了排行榜啊
感谢楼主,这个必须收藏~!
一定要记得在game.json加上这个,否则无法访问开发数据域
{
“openDataContext”: “open-data”,
}
Mark 碉堡了
maker