重发问题: 点击页面会导致setTimeout setInterval 延迟执行

我现在在做一个射击游戏, 里面有一个不停的更新里面元素位置的setInterval;
同时页面有需要频繁点击触发发射的功能; 在频繁点击页面的时候动画会明显卡顿帧数并没有变小, 我想应该是点击事件的处理导致setInterval稍后执行; 我把setInterval改成setTimeout还是同样的结果, 即使把原来点击页面触发的一系列函数全部注释, 在页面的任何地方添加下面的方法, 一样会导致setInterval明显延迟执行;
Laya.stage.on('click', null, function (e) {
console.log.log(`click`);
});
即使我将所有的事件绑定全部注释掉频繁的点击页面也会卡住!!!!!
我在事件的处理函数中设置stopPropagation没有任何作用; 现在这个是一个很大的问题, 不知道如何去解决;
 
在android下面会出现这个问题, 用android的浏览器打开demo 点击页面会这样, iphone 和pc 上面是好的;
下面的demo, 你用右手大拇指快速点击, 会看到效果; 效果不太明显, 但是在我的游戏中很明显;
已邀请:

xyj1392010

赞同来自: cuixueying

正好我也遇到过一样的问题。
在android下确实有这个问题,传统的定时器方法已经不太合适用了,是会卡顿的,应该用requestAnimationFrame。
Laya本身带Laya.timer.loop和Laya.timer.frameLoop,前一个基于时间,后一个基于帧。按照楼主的需求,应该基于时间,但正因为loop是基于时间的,所以类似setInterval,虽然不会卡顿,但是会不流畅。所以当时我研究了后决定还是使用requestAnimationFrame,楼主可以搜索下该api。该方法是基于帧更新的,回调函数内会返回当前和上一次执行的时间戳,可以根据这个来自己判断更新

cuixueying

赞同来自:

好的,问题收到,我们看下!

cuixu_xucui

赞同来自:

楼主你好,这个问题最终是怎么解决的

要回复问题请先

商务合作
商务合作