详细问题描述
(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