项目中如果要实现可以任意方向自由滑动并且有惯性滑动功能,可以使用scrollView组件,同时勾选上水平和垂直滑动属性:
红框中的三个属性都勾选
但是原生的组件中只要在水平或者垂直方向滑到底了就会直接停止,会显示很生硬,所以我们可以改造一下功能,实现一个方向滑动底停止后,另一个方向可以继续惯性滑动。
下面是原生代码:
红框中的代码就是判断是否在水平或者垂直方向有超过边界的判断,如果任意一个方向超过边界,则reachedEnd设为true了,就会马上停止滑动,所以我们可以改动这个判断,改为只有两个方向都超过范围了才通过判断:
我们可以新建一个集成cc.scrollView的类型,重写判断函数:fuzzyEquals
export default class ScrollVeiwExtend extends cc.ScrollView {
public quintEaseOut(time: number) {
time -= 1;
return (time * time * time * time * time + 1);
}
**private fuzzyEquals(obj: cc.Vec2, other: cc.Vec2, variance: number): boolean {
if ((obj.x - varia