项目中如果要实现可以任意方向自由滑动并且有惯性滑动功能,可以使用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 - varian

在cocos creator项目中,为了实现任意方向自由滚动并带有惯性效果,可以利用scrollView组件,并启用水平和垂直滑动。然而,原生组件在到达边界时会立即停止,显得不够平滑。通过修改scrollView的源代码,特别是调整超过边界判断的条件,使得只有当两个方向都超出范围时才会停止,从而达到一个方向停止后另一个方向仍能惯性滚动的效果。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



