1 回答
TA贡献1909条经验 获得超7个赞
1、基础动画
通过控制元素的基本属性来实现动效,位置(P)、缩放(S)、旋转(R)、透明度(T)
例:列表元素由左向右滑动出现的动效
2、路径动画
路径动画就是物体或者某个元素按照设定好的路径进行运动
例1: 纸飞机的运动
例2: 针和线的运动
例3: 水泡泡的运动
例4: 卡片的滑动
3、修剪路径动画
通过在图层上添加路径,控制开始和结束的百分比来实现动画
例1:加载完成
例2、速度仪表盘进度条的动画
例3、倒计时数字色条的转动
4、融合动画
两个物体靠近时有粘连效果
5、跟随动画
例1、儿子找父亲,儿子跟着父亲动
6、弹性动画——表达式的运用
A、Overshoot(过冲、夸张的)理解为“抖动”,如 果冻抖动的效果
freq = 3;
decay = 5;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time) n--;
}
if (n > 0){
t = time - key(n).time;
amp = velocityAtTime(key(n).time - .001);
w = freq*Math.PI*2;
value + amp*(Math.sin(t*w)/Math.exp(decay*t)/w);
}else
value
B、Bounce 理解为“反弹”,如 皮球落地反弹的效果
elev = degreesToRadians(75);
v = 1900;
e = .7;
f = .5;
g = 5000;
nMax = 9;
tLaunch = 1;
vy = v*Math.sin(elev);
vx = v*Math.cos(elev);
if (time >= tLaunch){
t = time - tLaunch;
tCur = 0;
segDur = 2*vy/g;
tNext = segDur;
d = 0; // x distance traveled
nb = 0; // number of bounces
while (tNext < t && nb <= nMax){
d += vx*segDur;
vy *= e;
vx *= f;
segDur *= e;
tCur = tNext;
tNext += segDur;
nb++
}
if(nb <= nMax){
delta = t - tCur;
x = d + delta*vx;
y = delta*(vy - g*delta/2);
}else{
x = d;
y = 0;
}
value + [x,-y]
}else
value
C、弹性表达式,如拉橡皮筋
- 1 回答
- 0 关注
- 721 浏览
添加回答
举报