现状问题
当我们做手势操作,动画还没有播放完毕,立刻执行下一个系统手势动作时,上一段正在运行的动画会直接强制终止。画面会突然跳变,过渡割裂,视觉上不够连贯。
举例合适场景(不会干扰正在浏览的App页面内容):
1. 上滑返回退出应用的动画还在运行,中途立刻上滑进入多任务后台
2. 在多任务卡片滑动动画播放中途,直接点选另一张应用卡片
3. 打开应用的过渡动画还没结束,中途手势返回桌面
以上都是系统层级窗口切换,不会挤压破坏App内部浏览内容。现在旧动画直接半路掐断,画面有突兀一跳。
构想
不要直接销毁正在播放的系统窗口动画。
当触发新的系统手势动作,新的窗口动画开始入场时,顺着新动画的运动方向,把旧的系统窗口顺势向外推挤出去,新旧两套窗口动画同步联动运行。
实现思路:
1. 在琉光图层渲染管线内部增加这套推挤处理逻辑。发生动画打断一瞬间,CPU只做一次判断校验,把冲击力、阻尼、最大偏移距离、参与动画的系统图层一次性传给图形渲染层。
2. 后续每一帧推挤产生的位移、速度衰减变化,交给图形渲染层完成运算,不再需要CPU每一帧反复计算、下发位置指
15 人已参与
支持
反对