Flutter-可叠加的Sprite / Gif动画

时间:2019-05-04 06:08:31

标签: flutter flutter-animation

我想在用户点击屏幕时显示一些动画。动画也必须是可控的,因为每次点击后都需要将其重置。

我尝试过的方法:  1.在叠加层中显示Gif图片。

RenderBox renderBox = context.findRenderObject();
var size = renderBox.size;
var offset = renderBox.localToGlobal(Offset.zero);

_myGif = Image.asset('images/mygif.gif', width: 100, height: 100,);

return OverlayEntry(
  builder: (context) => Positioned(
    left: offset.dx - 50.0 + size.width/2,
    top: offset.dy - 50.0 + size.height/2,
    child: Container(
      child: _myGif
    ),
  )
);

问题:Gif动画不可控。动画似乎也从随机帧开始播放,每次都以随机帧结束。

  1. 使用第三方小部件(gif_ani)

    _animationCtrl = GifController(vsync:this,duration:new Duration(毫秒:1000),frameCount:38); _mygifAnimation = GifAnimation(   宽度:100.0,   高度:100.0,   图片:AssetImage('images / mygif.gif'),   控制器:_animationCtrl, );

问题:仅当它不在叠加层上时,它才起作用。将GifAnimation作为子级添加到“叠加层”中时,它根本不会显示。

  1. 使用Flame运行精灵表 问题:AnimationAsWidget不符合我的要求,因为我需要控制动画。其他方式会使我的代码过于复杂,因为我没有开发游戏。

对此有什么解决方案吗?预先谢谢你。

0 个答案:

没有答案