小游戏 子域返回的在主域绘制排行榜无法做分页 因为你获取不到子域的排行数组的大小
发布于 4 年前 作者 fang64 1135 次浏览 来自 问答

小游戏 子域返回的在主域绘制排行榜无法做分页 因为你获取不到子域的排行数组的大小?是这样吗

1 回复

建议把分页逻辑放到子域处理,原因和具体实现方式描述大体如下:

排行榜的绘制逻辑在子域,展示逻辑在主域,展示的方式是通过把子域绘制好的 sharedCanvas 转化成贴图呈现出来。除了 sharedCanvas,主域不能从子域获取其它任何信息(本人没有去试过获取其它信息,但从官方文档上的介绍来看应该是不能的)。鉴于此,相关分页逻辑就只能移步到子域了。

子域处理相关 touch 或者 click 事件,然后根据具体业务逻辑更新 sharedCanvas 绘制内容,主域周期性地不断把 sharedCanvas 转化为贴图并更新呈现,这样就能实现排行榜的分页或者其它交互功能了。

需要注意的有两点:

1、click 可能需要用 touchstart 或者 touchend 来模拟

2、子域的任何视图是不会直接展示在屏幕的,所以不能直接针对某个子域视图里的某个节点绑定事件,只能全局绑定 click 或者 touch 事件,然后通过触摸点在屏幕的位置判断用户是否点击中某个节点,判断为点中后才能触发 click 处理

3、第 2 点中的判断用户是否点击中节点,一般是通过事件的 clientX 和 clientY 做位置判断的,这样的话可能就需要开发者处理位“坐标偏移”的问题,因为主域设置 sharedCanvas 的尺寸一般不会刚好填充屏幕,而 clientX 和 clientY 是屏幕位置坐标,所以需要做坐标转换,也不是很复杂,自己摸索去吧哈哈哈

回到顶部