微信小游戏排行榜demo,纯微信api实现,可直接使用

跳一跳首页的排行榜,玩的过程中,显示离下一个好友分数的间隔

微信自己的游戏那就不知道了,别人要是想做那就得老老实实的放在子域里显示,子域准备好好友数据,主域再发消息显示

已解决,我的思路是,在调用横版时启用触摸滑动,调用竖版时移除触摸滑动。下面是我修改的部分代码。

//获取横板分数排行
loadScoreOpenRank: function() {
//启用横板时调用触摸移动
this.rankRender.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this)

    this.node.active = true;
    this.touchLayer.active = true;
    this.changeRender(this.rankListNode);      
    this.postMessage(Consts.DomainAction.FetchFriendScore);
},

//竖版横向比较
loadHorRank: function() {
    //启用竖版时移除触摸移动
    this.rankRender.node.off(cc.Node.EventType.TOUCH_MOVE,this.onTouchMove,this);

    this.node.active = true;
	this.touchLayer.active = false;   
    this.changeRender(this.horRankNode);
    this.postMessage(Consts.DomainAction.HorConmpar);
},

横版禁用滑动,竖版启动,原本就设置了,你怕不是自己给删掉了吧 :joy:

mark

@魏书 老哥 为什么我的怎么都显示不了排行,都是闪一下就没了!!!!

Mark

Mark

检查下这个地方

直接导入就可以用了吗

这个地方我查过,undefined可能是刚启动的时候cocos预加载源码啥的,这个消息不是我主动postmessage的。一闪而过是因为子域每帧清除渲染的问题,我现在加上了setinterval就不会闪一下就没了;我用的是creator2.0.1,具体原因也不清楚,但是一定是子域每帧清除渲染的问题。
另外这个我还在关注,待明确问题所在,但我确认这不是我客户端postmessage的消息

更新:和子域通讯收发消息的地方都log了,这样就很奇怪了,如图

在 wxRankList.ts 的 postMessage() 方法里加上log 看看你什么时候发给子域消息没加消息类型

我就是在这里加的
主域里

子域里
我真的没有post,却收到了onmessage

自己找找吧,源码不用任何改动就可以正常跑起来的
需要注意的是排行榜的节点node要先正常加载一遍然后设置成常驻节点,确保里面的组件都是初始化过的,node.active上来就设置false的话组件是不会初始化的,然后直接调用 [quote=“1111235, post:1, topic:64299”]
js可getComponent调用
this.wxRankListNode.getComponent(“wxRankList”).loadLevelOpenRank() //显示关卡进度排行
this.wxRankListNode.getComponent(“wxRankList”).onClose() //隐藏排行榜

ts可import后直接用instance方法调用
import wxRankList from “./wxRankList”;
wxRankList.instance.node.active = true
wxRankList.instance.loadHorRank(1) //横向比较第一关得分排行
wxRankList.instance.onClose() //隐藏排行榜
[/quote]

兄弟这个闪一下的问题找到了吗? 我也是闪一下就没了 我的没有未知消息类型 而且肯定不是这个问题吧,未知消息类型只不过是个打印什么都没有处理

弄个demo我看看

嗯嗯对的,我也奇怪问题在哪,我用setinterval解决了不知道后续有没有bug;你用的CC是什么版本的?

我代码是照着你的用法写的!老哥已经写的很详细!
未知消息类型这个目前没造成问题,所以也暂时不管;最主要是不用setinterval不知道怎么样不闪

我的天,我把这个杠掉居然还能收到没加消息类型的消息包…………

根本找不到发消息的代码。。微信是怎么收到消息的;倒数第二个是我自己加的那个log//
单纯的很好奇这到底是为什么!!!难道是编辑器的问题?!

@kemi5200 兄弟,我问的时候是提了两个问题,没有说这两个问题相关阿;闪一下那个可能是你index类自动释放内存,或者编辑器就是会每帧清除渲染,具体我也不清楚,反正关键位置用setinterval能解燃眉之急!

你可以新建个空白工程,只导入这个排行榜功能,如果还有问题那就只能怨编辑器了,我用的1.9.2 2.0 2.0.1都没问题