收藏
回答

小游戏最大化和退出最大化后,鼠标点击事件位置异常,wx.onMouseU返回的位置不正确

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小游戏 Bug wx.onMouseUp和wx.onTouchEnd以及wx.onWindowResize 工具 4.1.0.34 3.10.1

复现步骤:

1.打开真机调试->PC预览

2.点击右上角的最大化按钮,然后点击页面底部位置,如上图红色位置。

3.按键ESC退出最大化,再次点击页面底部位置,如上图红色位置。

4.然后打开VSconsole,观看打印,可以发现onWindowResize方法每次点击最大化或最小化的时候被触发两次,仅第二次的尺寸是正常值,但是鼠标点击事件返回的坐标位置,却是基于不正常的那个尺寸返回。最大化后,窗体高1080,但鼠标返回坐标离1080差距较大。当退出最大化后,窗体只有786的高度,但是返回坐标却是823,明显超过。

出错原因猜测:

根据两次高度差值计算都是44。1080-1036=44, 830-786=44。而44刚好是PC端小游戏窗口标题栏的高度。

具体过程:

点击最大化后,第一次触发onWindowResize是带标题栏,第二次触发时隐藏了标题栏。所以高度有个从小变大的过程。

按ESC退出最大化,第一次触发不带标题栏(因为在最大化的第二次触发就隐藏了标题栏),第二次触发显示回了标题栏。所以高度有个从大变小的过程。

估计是隐藏标题栏和显示回标题栏后,微信小游戏底层没有处理好,所以导致鼠标点击事件的坐标错位。


最后一次编辑于  09-25
回答关注问题邀请回答
收藏

1 个回答

  • 无问
    无问
    发表于小程序端
    2天前

    同样问题,有解决方案吗🥺

    2天前
    有用
    回复
登录 后发表内容