收藏
回答

触摸事件的start与end或cancel不是成对出现

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小游戏 Bug wx.onTouchStart wx.onTouchEnd wx.onTouchCancel 微信安卓客户端 7.0.8 2.9.3


我们使用的引擎在内部设置了单点触摸限制的逻辑,在一个点击未结束时,禁止响应下一个点击。在测试过程中偶现所有点击均无法响应的情况。经过日志排查。发现有时候,在触发了wx.onTouchStart回调之后,会出现wx.onTouchEnd与wx.onTouchCancel 都没有回调的情况,导致我们内部实现的点击计数器一直无法清零,也就没法响应后面的点击事件了。请问是微信小游戏的触摸事件组件设计如此吗?还是一个bug?

部分代码如下

wx.onTouchStart(touchEventHandlerFactory('touchstart'));

wx.onTouchMove(touchEventHandlerFactory('touchmove'));

wx.onTouchEnd(touchEventHandlerFactory('touchend'));

wx.onTouchCancel(touchEventHandlerFactory('touchcancel'));

 function touchEventHandlerFactory(type) {

                return function (event) {

                    var touchEvent = new TouchEvent(type);

                    if(type!='touchmove')

                    {

                        console.log("weapp-adapter dispatch "+type);

                    }

}

日志图如下,第一次touchStart之后未出现touchEnd或touchCancel,第二次touchStart之后出现touchCancel。之后又每次都是touchstart和touchEnd成对出现





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

1 个回答

  • 小游戏运营专员-宏
    小游戏运营专员-宏
    11-18

    你好,是否有复现的方法,能否提供个代码片段?(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    11-18
    赞同
    回复