1 回答

TA貢獻1909條經(jīng)驗 獲得超7個贊
1、基礎動畫
通過控制元素的基本屬性來實現(xiàn)動效,位置(P)、縮放(S)、旋轉(R)、透明度(T)
例:列表元素由左向右滑動出現(xiàn)的動效
2、路徑動畫
路徑動畫就是物體或者某個元素按照設定好的路徑進行運動
例1: 紙飛機的運動
例2: 針和線的運動
例3: 水泡泡的運動
例4: 卡片的滑動
3、修剪路徑動畫
通過在圖層上添加路徑,控制開始和結束的百分比來實現(xiàn)動畫
例1:加載完成
例2、速度儀表盤進度條的動畫
例3、倒計時數(shù)字色條的轉動
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 關注
- 779 瀏覽
添加回答
舉報