需求:
点击对话框选择对应的选项,移动对话框跟另外一个对话框有重合的话就合成 ( 开始的第一个场景不能移动,后面的场景可)。
实现
- 使用一个变量markNum = 0;
- 当TOUCH_START点击开始 markNum += 1;
- 当TOUCH_MOVE移动的时候都markNum += 1;
- 在TOUCH_END点击结束判断:
markNum === 1为点击;
markNum > 1为移动,开始进去的场景一不可移动;
问题场景:
- 在更新小游戏关卡的时候出现了一个神奇的问题,电脑本地调试运行的时候完全没问题,但是打包后无论外链还是内链都出现:
目前已有的部分手机安卓机型不能正常点击,ios苹果手机的时候可以正常点击。
解决思路:
-
X 加粗样式手机性能问题:
这里需要说明的是这里说的不能点击的手机系统都是比较新的,也不是杂牌,而且点击事件没有触及到什么需要性能的组件或者API,就一些已有变量的判断,所以排除了性能的问题。 -
X 代码问题导致程序崩溃
本地跑以及打包运行都没有报错,点击的时候也没有,排除代码问题。 -
√ !!! 判断条件没进去
接下来是针对点击事件的调试。
由于开始的第一个场景不能移动,后面的场景可,所以对话框不能移动是正常的,但是不能点击就不正常了。
于是针对点击事件的条件判断进行输出,有了惊人的发现,点击失败的机型的markNum 值只点击的时候居然也>1!!!!所以没有正常进判断没有直接进去。
我们老大说有可能是因为部分机型的点击会识别错误,会有轻轻的位移,最后为了不改原有逻辑,直接加了个判断,用event.getDelta()偏移量,偏移量<10的算点击。
另外,打包的时候不要输出node(e.target),会直接导致程序崩溃。
至此,耗费了5个小时,终于排查出来。