在看Flutter Live的时候,Flare演示看起来很牛逼,并且挺好玩的(对于一个不会设计的程序猿),因此就撸了个demo玩玩。git
在Flutter Live,2Dimensions宣布即将推出Flare,这是一款非凡的新工具,可供设计师建立矢量动画,可直接嵌入到Flutter应用程序中并使用代码进行操做。github
使用Flare构建的动画能够做为窗口小部件嵌入到现有的Flutter应用程序中,容许它们参与完整的合成器并与其余文本,图形图层甚至UI小部件重叠。以这种方式集成能够将动画从其余体系结构的“黑盒子”限制中解放出来,并容许设计人员和开发人员之间的持续协做直到应用程序完成。Flutter和Flare之间的这种紧密集成为想要创造高度完美的移动体验的数字设计师和动画师提供了独特的引人注目的产品。bash
比较大的一个优点:Flare消除了在一个应用程序中设计,在另外一个应用程序中设置动画,而后将全部这些转换为特定于设备的资产和代码的须要。app
www.2dimensions.com/explore/pop…网站上面已经有不少现成的动画实例,能够直接拿来用就行。ide
点击其中的一个动画,而后页面右上角的OPEN IN NIMA.工具
点击Animate页面,就能够看到左下角,会显示所拥有的动画Animations动画
在Export to Engine菜单中,选择Generic做为引擎选项。将其余设置保留为默认值,而后按导出。这将生成并下载带有Robot.nima文件和Robot.png文件的zip文件。网站
dependencies:
flutter:
sdk: flutter
nima: ^1.0.0
复制代码
assets:
- assets/
- assets/robot.nima
- assets/robot.png
复制代码
class NimaActor extends LeafRenderObjectWidget{
final String filename;//动画文件的路径
final BoxFit fit;//设置填充的模式
final Alignment alignment;//设置对齐方式
final String animation;/*按我理解,就是一个动画文件,可能会包含多个动画状态,每一个动画状态对应惟一的一个字符串。
根据传进去的Animation的名字,播放对应的动画。就好比一我的形动画,有跳的动画,有走的动画,
根据所传的animation的名字,播放对应的动画
*/
final double mixSeconds;//从一个动画切换到另外一个动画之间的时间
final bool paused;//是否暂停动画
final NimaAnimationCompleted completed;//动画完成时提供的回调
final NimaController controller;//控制器
}
复制代码
首先是导入nima_actor.dart,这样只后就可使用用来显示动画的NimaActor小部件ui
import 'package:nima/nima_actor.dart';
//省略部分代码
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new NimaActor("assets/robot", alignment: Alignment.center,
fit: BoxFit.contain,
animation: "Flight",
),
);
}
复制代码
优点就是那样咯,Flare消除了在一个应用程序中设计,在另外一个应用程序中设置动画,而后将全部这些转换为特定于设备的资产和代码的须要。spa
动画设计果真仍是得设计师来搞,而后咱们之间导出来到Flutter中使用就能够来。看起来挺好玩的,有空的时候你们能够撸个动画demo玩玩.