# Flare 动画
如上:
1.我们需要用的是 flare (opens new window) 官网在
Explore
里面找到需要使用的动画点击进入2.点击
OPEN FLARE
进入编辑页面,3.
4.
5.将下载的文件放在项目根目录新建一个 flrs 文件夹下
6.
pubspec.yaml
dependencies:
flutter:
sdk: flutter
flare_flutter: ^1.5.0
...
assets:
- flrs/
1
2
3
4
5
6
7
2
3
4
5
6
7
- 7.代码
import 'package:flutter/material.dart';
import 'package:flare_flutter/flare_actor.dart';
class BtnFlare extends StatefulWidget {
_BtnFlareState createState() => _BtnFlareState();
}
class _BtnFlareState extends State<BtnFlare> {
String _currentAnimation = 'normal';
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Container(
width: 100,
height: 100,
child: GestureDetector(
child: FlareActor(
"flrs/btn.flr",
animation: _currentAnimation,
fit: BoxFit.contain,
callback: (animationName) {
switch (animationName) {
case "tap":
break;
case "success":
break;
case "fail":
break;
}
},
),
),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
color: Colors.green,
onPressed: () {
setState(() {
_currentAnimation = "success";
});
},
child: Text(
'Success',
style: TextStyle(color: Colors.white),
),
),
RaisedButton(
onPressed: () {
setState(() {
_currentAnimation = "tap";
});
},
child: Text(
'Tap',
style: TextStyle(color: Colors.white),
),
),
RaisedButton(
color: Colors.orange,
onPressed: () {
setState(() {
_currentAnimation = "loading";
});
},
child: Text(
'Loading',
style: TextStyle(color: Colors.white),
),
),
RaisedButton(
color: Colors.red,
onPressed: () {
setState(() {
_currentAnimation = "fail";
});
},
child: Text(
'Fail',
style: TextStyle(color: Colors.white),
),
)
],
)
],
);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
← Model 数据模型 打包 →