千家信息网

基于Flutter怎么制作一个火箭发射动画

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文小编为大家详细介绍"基于Flutter怎么制作一个火箭发射动画",内容详细,步骤清晰,细节处理妥当,希望这篇"基于Flutter怎么制作一个火箭发射动画"文章能帮助大家解决疑惑,下面跟着小编的思路
千家信息网最后更新 2026年11月03日基于Flutter怎么制作一个火箭发射动画

本文小编为大家详细介绍"基于Flutter怎么制作一个火箭发射动画",内容详细,步骤清晰,细节处理妥当,希望这篇"基于Flutter怎么制作一个火箭发射动画"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

AnimatedPositioned介绍

AnimatedPositioned组件的使用方式其实和 AnimatedContainer 类似。只是AnimatedPositioned是 Positioned 组件的替代。构造方法定义如下:

const AnimatedPositioned({    Key? key,    required this.child,    this.left,    this.top,    this.right,    this.bottom,    this.width,    this.height,    Curve curve = Curves.linear,    required Duration duration,    VoidCallback? onEnd,  })

前面的参数和 Positioned 一样,后面是动画控制参数,这些参数的定义和 AnimatedContainer 的是一样的:

  • curve:动画效果曲线;

  • duration:动画时长;

  • onEnd:动画结束后回调。

我们可以改变 left,top,width等参数来实现动画过渡的效果。比如我们的火箭发射,就是修改 bottom (飞行高度控制)和 width (尺寸大小控制)来实现的。

火箭发射动画实现

有了上面的两个分析,火箭发射动画就简单了!完整代码如下:

class RocketLaunch extends StatefulWidget {  RocketLaunch({Key? key}) : super(key: key);  @override  _RocketLaunchState createState() => _RocketLaunchState();}class _RocketLaunchState extends State<RocketLaunch> {  var rocketBottom = -80.0;  var rocketWidth = 160.0;  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text('火箭发射'),        brightness: Brightness.dark,        backgroundColor: Colors.black,      ),      backgroundColor: Colors.black,      body: Center(        child: Stack(          alignment: Alignment.bottomCenter,          children: [            Image.asset(              'images/earth.jpeg',              height: double.infinity,              fit: BoxFit.fill,            ),            AnimatedPositioned(              child: Image.asset(                'images/rocket.png',                fit: BoxFit.fitWidth,              ),              bottom: rocketBottom,              width: rocketWidth,              duration: Duration(seconds: 5),              curve: Curves.easeInCubic,            ),          ],        ),      ),      floatingActionButton: FloatingActionButton(        child: Text(          '发射',          style: TextStyle(            color: Colors.white,          ),          textAlign: TextAlign.center,        ),        onPressed: () {          setState(() {            rocketBottom = MediaQuery.of(context).size.height;            rocketWidth = 40.0;          });        },      ),    );  }}

其中一开始设置 bottom 为负值,是为了隐藏火箭的焰火,这样会更有感觉一些。然后就是在点击发射按钮的时候,通过 setState 更改底部距离和火箭尺寸就可以搞定了。

读到这里,这篇"基于Flutter怎么制作一个火箭发射动画"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

动画 火箭 发射 参数 制作 文章 控制 内容 就是 尺寸 效果 组件 妥当 两个 代码 只是 大小 底部 思路 感觉 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 北京路客互联网科技有限公司 互联网科技活动banner 亿账通互联网科技 狮子座互联网科技培训 上海亿帐通互联网科技 互联网科技创新企业排名 成都玖崟互联网科技有限公司乐商圈怎么样 央行互联网金融科技公司 科技与互联网哪个更好 互联网科技创新服务 宝灵互联网科技有限公司 互联网金融科技名词解释 滨湖区互联网智能科技产品有哪些 富国互联网金融科技混合基金 互联网科技机房 广西科技产业互联网是什么 盐城市攀科互联网科技有限公司 互联网高科技绘画 如何强化互联网金融科技 互联网科技公司排名 山东特亿宝互联网科技有限公司 A股互联网金融科技公司 现代科技和互联网有关系吗 青岛科技大学互联网大赛研究生 上海钢联属于互联网科技股吗 互联网科技新闻 数字互联网科技有限公司 河南商务圈互联网科技有限公司 优雇互联网科技有限公司
0