Skip to content

Commit ec5f35d

Browse files
committed
add light_speed
1 parent d59ef0f commit ec5f35d

File tree

6 files changed

+89
-17
lines changed

6 files changed

+89
-17
lines changed

lib/animated_interpolation.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ export 'animated_config.dart';
44
export 'bounce.dart';
55
export 'sliding.dart';
66
export 'zooming.dart';
7+
export 'light_speed.dart';
78
///
89
/// 加强型的tween,可设置多个插值,受到React Native的插值动画启发
910
/// 和tween使用方法一样

lib/bounce.dart

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Map<double, AnimatedConfig> bounceInUp = {
1515
0.9: AnimatedConfig(translateY: -5),
1616
1: AnimatedConfig(translateY: 0)
1717
};
18+
1819
Map<double, AnimatedConfig> bounceInDown = {
1920
0: AnimatedConfig(opacity: 0, translateY: -800),
2021
0.6: AnimatedConfig(opacity: 1, translateY: 25),
@@ -25,32 +26,58 @@ Map<double, AnimatedConfig> bounceInDown = {
2526
Map<double, AnimatedConfig> bounceInRight = {
2627
0: AnimatedConfig(opacity: 0, translateX: 600),
2728
0.6: AnimatedConfig(opacity: 1, translateX: -20),
28-
0.75: AnimatedConfig(translateX: -8),
29+
0.75: AnimatedConfig(translateX: 8),
2930
0.9: AnimatedConfig(translateX: -4),
30-
1: AnimatedConfig(translateY: 0)
31+
1: AnimatedConfig(translateX: 0)
32+
};
33+
Map<double, AnimatedConfig> bounceInLeft = {
34+
0: AnimatedConfig(opacity: 0, translateX: -600),
35+
0.6: AnimatedConfig(opacity: 1, translateX: 20),
36+
0.75: AnimatedConfig(translateX: -8),
37+
0.9: AnimatedConfig(translateX: 4),
38+
1: AnimatedConfig(translateX: 0)
3139
};
3240
Map<double, AnimatedConfig> bounceOut = {
33-
0: AnimatedConfig(),
41+
0: AnimatedConfig(opacity: 1,scale: 1),
3442
0.2: AnimatedConfig(scale: 0.9),
35-
0.5: AnimatedConfig(scale: 1.11),
36-
0.55: AnimatedConfig(scale: 1.11),
43+
0.5: AnimatedConfig(scale: 1.11,opacity: 1),
44+
0.55: AnimatedConfig(scale: 1.11,opacity: 1),
3745
1: AnimatedConfig(opacity: 0, scale: 0.3)
3846
};
3947

4048
Map<double, AnimatedConfig> bounceOutUp = {
41-
0: AnimatedConfig(),
42-
0.2: AnimatedConfig(translateY: -10),
49+
0: AnimatedConfig(opacity: 1,translateY: 0),
50+
0.2: AnimatedConfig(translateY: -10,opacity: 1),
4351
0.4: AnimatedConfig(translateY: 20),
4452
0.45: AnimatedConfig(translateY: 20),
45-
0.55: AnimatedConfig(),
53+
0.55: AnimatedConfig(opacity: 1),
4654
1: AnimatedConfig(opacity: 0, translateY: -800)
4755
};
4856

49-
Map bounceOutDown = {
50-
0: AnimatedConfig(),
51-
0.2: AnimatedConfig(translateY: 10),
57+
Map<double, AnimatedConfig> bounceOutDown = {
58+
0: AnimatedConfig(opacity: 1,translateY: 0),
59+
0.2: AnimatedConfig(translateY: 10,opacity: 1),
5260
0.4: AnimatedConfig(translateY: -20),
5361
0.45: AnimatedConfig(translateY: -20),
5462
0.55: AnimatedConfig(opacity: 1),
5563
1: AnimatedConfig(opacity: 0, translateY: 800),
5664
};
65+
66+
67+
Map<double, AnimatedConfig> bounceOutRight = {
68+
0: AnimatedConfig(opacity: 1,translateX: 0),
69+
0.2: AnimatedConfig(translateX: 10,opacity: 1),
70+
0.4: AnimatedConfig(translateX: -20),
71+
0.45: AnimatedConfig(translateX: -20),
72+
0.55: AnimatedConfig(opacity: 1),
73+
1: AnimatedConfig(opacity: 0,translateX: 600)
74+
};
75+
76+
Map<double, AnimatedConfig> bounceOutLeft = {
77+
0: AnimatedConfig(opacity: 1,translateX: 0),
78+
0.2: AnimatedConfig(translateX: -10,opacity: 1),
79+
0.4: AnimatedConfig(translateX: 20),
80+
0.45: AnimatedConfig(translateX: 20),
81+
0.55: AnimatedConfig(opacity: 1),
82+
1: AnimatedConfig(opacity: 0,translateX: -600)
83+
};

lib/fading.dart

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,33 @@ import 'animated_config.dart';
33
Map<double, AnimatedConfig> createFade(AnimatedType type, double fromValue) {
44
return {
55
0: AnimatedConfig(opacity: 0, translateX: type == AnimatedType.translateX ? fromValue : 0, translateY: type == AnimatedType.translateY ? fromValue : 0),
6-
1: AnimatedConfig(opacity: 1)
6+
1: AnimatedConfig(opacity: 1,translateX: 0,translateY: 0)
77
};
88
}
99

10+
Map<double, AnimatedConfig> createFadeOut(AnimatedType type, double toValue) {
11+
return {
12+
1: AnimatedConfig(opacity: 0, translateX: type == AnimatedType.translateX ? toValue : 0, translateY: type == AnimatedType.translateY ? toValue : 0),
13+
0: AnimatedConfig(opacity: 1,translateX: 0,translateY: 0)
14+
};
15+
}
16+
17+
18+
1019
Map<double, AnimatedConfig> fadeInDown = createFade(AnimatedType.translateY, 100);
1120
Map<double, AnimatedConfig> fadeInUp = createFade(AnimatedType.translateY, -100);
1221
Map<double, AnimatedConfig> fadeInLeft = createFade(AnimatedType.translateX, -100);
13-
Map<double, AnimatedConfig> fadeInRight = createFade(AnimatedType.translateY, 100);
22+
Map<double, AnimatedConfig> fadeInRight = createFade(AnimatedType.translateX, 100);
1423
Map<double, AnimatedConfig> fadeInDownBig = createFade(AnimatedType.translateY, 500);
1524
Map<double, AnimatedConfig> fadeInUpBig = createFade(AnimatedType.translateY, -500);
1625
Map<double, AnimatedConfig> fadeInLeftBig = createFade(AnimatedType.translateX, -500);
1726
Map<double, AnimatedConfig> fadeInRightBig = createFade(AnimatedType.translateY, 500);
27+
28+
Map<double, AnimatedConfig> fadeOutDown = createFadeOut(AnimatedType.translateY, 100);
29+
Map<double, AnimatedConfig> fadeOutUp = createFadeOut(AnimatedType.translateY, -100);
30+
Map<double, AnimatedConfig> fadeOutLeft = createFadeOut(AnimatedType.translateX, -100);
31+
Map<double, AnimatedConfig> fadeOutRight = createFadeOut(AnimatedType.translateX, 100);
32+
Map<double, AnimatedConfig> fadeOutDownBig = createFadeOut(AnimatedType.translateY, 500);
33+
Map<double, AnimatedConfig> fadeOutUpBig = createFadeOut(AnimatedType.translateY, -500);
34+
Map<double, AnimatedConfig> fadeOutLeftBig = createFadeOut(AnimatedType.translateX, -500);
35+
Map<double, AnimatedConfig> fadeOutRightBig = createFadeOut(AnimatedType.translateY, 500);

lib/light_speed.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import 'animated_config.dart';
2+
import 'dart:math';
3+
import 'package:flutter/material.dart';
4+
5+
// 角度转弧度
6+
double degreeToRad(double degree) {
7+
return degree * pi / 180;
8+
}
9+
10+
Map<double, AnimatedConfig> lightSpeedIn = {
11+
0: AnimatedConfig(opacity: 0, translateX: 200, skewX: degreeToRad(-30)),
12+
0.6: AnimatedConfig(opacity: 1, translateX: 0, skewX: degreeToRad(20)),
13+
0.8: AnimatedConfig(skewX: degreeToRad(-5)),
14+
1: AnimatedConfig(opacity: 1, translateX: 0, skewX: degreeToRad(0))
15+
};
16+
Curve lightSpeedInCurve = Curves.easeOut;
17+
Curve lightSpeedOutCurve = Curves.easeIn;
18+
19+
Map<double, AnimatedConfig> lightSpeedOut = {
20+
0: AnimatedConfig(opacity: 1, translateX: 0, skewX: degreeToRad(0)),
21+
1: AnimatedConfig(opacity: 0, translateX: 200, skewX: degreeToRad(30))
22+
};

lib/sliding.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,23 @@ import 'animated_config.dart';
33
Map<double, AnimatedConfig> createSlide(AnimatedType type, double fromValue) {
44
return {
55
0: AnimatedConfig(translateX: type == AnimatedType.translateX ? fromValue : 0, translateY: type == AnimatedType.translateY ? fromValue : 0),
6-
1: AnimatedConfig()
6+
1: AnimatedConfig(translateX: 0, translateY: 0)
77
};
88
}
99

1010
Map<double, AnimatedConfig> createSlideOut(AnimatedType type, double fromValue) {
1111
return {
12-
0: AnimatedConfig(),
12+
0: AnimatedConfig(translateX: 0, translateY: 0),
1313
1: AnimatedConfig(translateX: type == AnimatedType.translateX ? fromValue : 0, translateY: type == AnimatedType.translateY ? fromValue : 0),
1414
};
1515
}
1616

1717
Map<double, AnimatedConfig> slideOutDown = createSlideOut(AnimatedType.translateY, 100);
1818
Map<double, AnimatedConfig> slideOutUp = createSlideOut(AnimatedType.translateY, -100);
1919
Map<double, AnimatedConfig> slideOutLeft = createSlideOut(AnimatedType.translateX, -100);
20-
Map<double, AnimatedConfig> slideOutRight = createSlideOut(AnimatedType.translateY, 100);
20+
Map<double, AnimatedConfig> slideOutRight = createSlideOut(AnimatedType.translateX, 100);
2121

2222
Map<double, AnimatedConfig> slideInDown = createSlide(AnimatedType.translateY, 100);
2323
Map<double, AnimatedConfig> slideInUp = createSlide(AnimatedType.translateY, -100);
2424
Map<double, AnimatedConfig> slideInLeft = createSlide(AnimatedType.translateX, -100);
25-
Map<double, AnimatedConfig> slideInRight = createSlide(AnimatedType.translateY, 100);
25+
Map<double, AnimatedConfig> slideInRight = createSlide(AnimatedType.translateX, 100);

lib/zooming.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ Map<double, AnimatedConfig> createZooming(AnimatedType type, double pivotPoint)
2121
),
2222
1: AnimatedConfig(
2323
scale: 1,
24+
translateX: 0,
25+
translateY: 0
2426
)
2527
};
2628
}
@@ -42,6 +44,8 @@ Map<double, AnimatedConfig> createZoomingOut(AnimatedType type, double pivotPoin
4244
),
4345
0: AnimatedConfig(
4446
scale: 1,
47+
translateX: 0,
48+
translateY: 0
4549
)
4650
};
4751
}

0 commit comments

Comments
 (0)