7***@qq.com
7***@qq.com
  • 发布:2019-10-26 23:55
  • 更新:2020-03-28 22:04
  • 阅读:562

【报Bug】touchmove 时间受 plus.screen.setBrightness 影响无法连贯监听

分类:HTML5+

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

                        var getAngle = function(angx, angy) {  
				return Math.atan2(angy, angx) * 180 / Math.PI;  
			};  
  
			var getDirection = function(startx, starty, endx, endy) {  
				var angx = endx - startx;  
				var angy = endy - starty;  
				var result = 0;  
				//如果滑动距离太短  
				if (Math.abs(angx) < 2 && Math.abs(angy) < 2) {  
					return result;  
				}  
				var angle = getAngle(angx, angy);  
				if (angle >= -135 && angle <= -45) {  
					result = 1;  
				} else if (angle > 45 && angle < 135) {  
					result = 2;  
				} else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {  
					result = 3;  
				} else if (angle >= -45 && angle <= 45) {  
					result = 4;  
				}  
				return result;  
			};  
  
			document.addEventListener('plusready', () => {  
				let startx = null;  
				let starty = null;  
				let endx = null  
				let endy = null;  
  
				window.addEventListener("touchstart", (e) => {  
					startx = e.touches[0].pageX;  
					starty = e.touches[0].pageY;  
				}, false);  
  
				window.addEventListener("touchmove", (e) => {  
					endx = e.changedTouches[0].pageX;  
					endy = e.changedTouches[0].pageY;  
					var direction = getDirection(startx, starty, endx, endy);  
					if (direction === 3) {  
						//向下滑动  
						var brig = plus.screen.getBrightness();  
						plus.screen.setBrightness(brig - 0.2);  
						console.log('向下');  
					}  
					if (direction === 4) {  
						//向上滑动  
						var brig = plus.screen.getBrightness();  
						plus.screen.setBrightness(brig + 0.2);  
						console.log('向上');  
					}  
				});  
  
			});

重现步骤

[步骤]

当滑动屏幕的时候,按道理是touchmove 时间是能一直接接收到数据的,然后只要执行 plus.screen.setBrightness ,touchmove就中断监听。如果把 plus.screen.setBrightness 注释掉,则没有问题。我要时间的功能就是,滑动屏幕能根据上下方向去调整亮度

IDE运行环境说明

HBuilderX

[IDE版本号]

2.3.7.20191024

[mac版本号]

10.14.6

联系方式

70800356

2019-10-26 23:55 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者)

window.addEventListener("touchmove", (e) => {
可以在这之后加入一行console.log();
就可以还原发现 touchmove 是中断监听的

cocos

cocos

同样遇到这个问题

该问题目前已经被锁定, 无法添加新回复