我这个排行榜真是见鬼了?

我那个排行榜做出来就这个样子,也不知道怎么回事,子域就是得不到想要的样式。导出来的子域里什么都调用不起来,结果在微信开发工具下用canvas硬写了一个::

1、方式是先通过官方的_show命令获取所有的数据,
2、将value由字符串转为数值,组成新的数组再排序,
3、再将排列好的新列表drawIamge到canvas上,

这玩法简直是麻烦到极点了,也不知道咋回事。哪个开放数据域具体操作还有什么玄机吗?我都尝试N遍了,写了一大堆下面这些,的确是出来了个排行榜,数据也对了,但这肯定哪不对,真是头大了

//不变背景&&上面的列表头
          context2.fillStyle = 'black'
          console.log(w + ' ' + h)
          context2.fillRect(0, ht - 30, 1000, 2300)
          context.font = "18px Verdana";
          context.fillStyle = 'white'
          context.fillText("排名", wt + 10, ht * 5.5);
          context.fillText("昵称", wt + k / 1.2, ht * 5.5);
          context.fillText("闯关数", wt + k * 2, ht * 5.5);
//开始排名
let len = newArr.length;
          let i = len - 1
          if (i > 20) {
            i = 20
          }
          while (i > -1) {
            let dataItem = newArr[i];
            let kvData = dataItem.KVDataList;
            let avatarUrl = dataItem.avatarUrl;
            let nickname = dataItem.nickname;
            let img = wx.createImage();
            img.src = "" + avatarUrl;

            context.fillText(len - i, wt + 15, ht * 5.5 + ((len - i) * 30));//这是前面的序数定位
            context.drawImage(img, wt + k / 1.55, (ht * 5.5 - 20) + ((len - i) * 30), 25, 25);//这是头像定位
            context.fillText(nickname, wt + k / 1.2, ht * 5.5 + ((len - i) * 30));//这是昵称定位
            context.fillText(kvData[0].value, wt + k * 2.2, ht * 5.5 + ((len - i) * 30));//这是后面的得分定位
            i--
          }

这还只是一段,全篇就是一大片。。。排行榜真这么容易见鬼吗,是子域的哪里没操作对?

可以参考开放数据域范例工程 ,WXSubContextView组件使用起来很简单的。
文档可以参考:https://docs.cocos.com/creator/manual/zh/publish/publish-wechatgame-sub-domain.html

里面有个现成的wx-open-data-project,是不是这个子域是标准版本,这个子域文件可以直接放到自己项目的主域里吗,就能生效是吗

左边是主域工程,右边是子域工程

就是,我生成那个wx-sub-project总是什么都没有,这次我把这个现成的放下去试下

另外我发现个问题,有些cocos版本里居然找不到WXSubContextView,不知道是不是版本低的缘固 我用的这个1.10

建议升级到2.x的版本使用,1.x版本的话参考这个工程:demo-wechat-subdomain-1.x.zip (20.1 KB)

原来这么多坑,谢谢你的指点

mark