cocos creator 点击事件识别成移动事件

需求:

点击对话框选择对应的选项,移动对话框跟另外一个对话框有重合的话就合成 ( 开始的第一个场景不能移动,后面的场景可)。

实现

  1. 使用一个变量markNum = 0;
  2. 当TOUCH_START点击开始 markNum += 1;
  3. 当TOUCH_MOVE移动的时候都markNum += 1;
  4. 在TOUCH_END点击结束判断:
    markNum === 1为点击;
    markNum > 1为移动,开始进去的场景一不可移动;

问题场景:

  • 在更新小游戏关卡的时候出现了一个神奇的问题,电脑本地调试运行的时候完全没问题,但是打包后无论外链还是内链都出现:
    目前已有的部分手机安卓机型不能正常点击,ios苹果手机的时候可以正常点击。

解决思路:

  • X 加粗样式手机性能问题:
    这里需要说明的是这里说的不能点击的手机系统都是比较新的,也不是杂牌,而且点击事件没有触及到什么需要性能的组件或者API,就一些已有变量的判断,所以排除了性能的问题。

  • X 代码问题导致程序崩溃
    本地跑以及打包运行都没有报错,点击的时候也没有,排除代码问题。

  • √ !!! 判断条件没进去
    接下来是针对点击事件的调试。
    由于开始的第一个场景不能移动,后面的场景可,所以对话框不能移动是正常的,但是不能点击就不正常了。
    于是针对点击事件的条件判断进行输出,有了惊人的发现,点击失败的机型的markNum 值只点击的时候居然也>1!!!!所以没有正常进判断没有直接进去。
    我们老大说有可能是因为部分机型的点击会识别错误,会有轻轻的位移,最后为了不改原有逻辑,直接加了个判断,用event.getDelta()偏移量,偏移量<10的算点击。
    另外,打包的时候不要输出node(e.target),会直接导致程序崩溃。
    至此,耗费了5个小时,终于排查出来。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值