小程序
小游戏
企业微信
微信支付
扫描小程序码分享
小游戏 子域返回的在主域绘制排行榜无法做分页 因为你获取不到子域的排行数组的大小?是这样吗
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
建议把分页逻辑放到子域处理,原因和具体实现方式描述大体如下:
排行榜的绘制逻辑在子域,展示逻辑在主域,展示的方式是通过把子域绘制好的 sharedCanvas 转化成贴图呈现出来。除了 sharedCanvas,主域不能从子域获取其它任何信息(本人没有去试过获取其它信息,但从官方文档上的介绍来看应该是不能的)。鉴于此,相关分页逻辑就只能移步到子域了。
子域处理相关 touch 或者 click 事件,然后根据具体业务逻辑更新 sharedCanvas 绘制内容,主域周期性地不断把 sharedCanvas 转化为贴图并更新呈现,这样就能实现排行榜的分页或者其它交互功能了。
需要注意的有两点:
1、click 可能需要用 touchstart 或者 touchend 来模拟
2、子域的任何视图是不会直接展示在屏幕的,所以不能直接针对某个子域视图里的某个节点绑定事件,只能全局绑定 click 或者 touch 事件,然后通过触摸点在屏幕的位置判断用户是否点击中某个节点,判断为点中后才能触发 click 处理
3、第 2 点中的判断用户是否点击中节点,一般是通过事件的 clientX 和 clientY 做位置判断的,这样的话可能就需要开发者处理位“坐标偏移”的问题,因为主域设置 sharedCanvas 的尺寸一般不会刚好填充屏幕,而 clientX 和 clientY 是屏幕位置坐标,所以需要做坐标转换,也不是很复杂,自己摸索去吧哈哈哈
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
建议把分页逻辑放到子域处理,原因和具体实现方式描述大体如下:
排行榜的绘制逻辑在子域,展示逻辑在主域,展示的方式是通过把子域绘制好的 sharedCanvas 转化成贴图呈现出来。除了 sharedCanvas,主域不能从子域获取其它任何信息(本人没有去试过获取其它信息,但从官方文档上的介绍来看应该是不能的)。鉴于此,相关分页逻辑就只能移步到子域了。
子域处理相关 touch 或者 click 事件,然后根据具体业务逻辑更新 sharedCanvas 绘制内容,主域周期性地不断把 sharedCanvas 转化为贴图并更新呈现,这样就能实现排行榜的分页或者其它交互功能了。
需要注意的有两点:
1、click 可能需要用 touchstart 或者 touchend 来模拟
2、子域的任何视图是不会直接展示在屏幕的,所以不能直接针对某个子域视图里的某个节点绑定事件,只能全局绑定 click 或者 touch 事件,然后通过触摸点在屏幕的位置判断用户是否点击中某个节点,判断为点中后才能触发 click 处理
3、第 2 点中的判断用户是否点击中节点,一般是通过事件的 clientX 和 clientY 做位置判断的,这样的话可能就需要开发者处理位“坐标偏移”的问题,因为主域设置 sharedCanvas 的尺寸一般不会刚好填充屏幕,而 clientX 和 clientY 是屏幕位置坐标,所以需要做坐标转换,也不是很复杂,自己摸索去吧哈哈哈