Flutter - Управляемая анимация спрайта / гифки при наложении - PullRequest
0 голосов
/ 04 мая 2019

Я хочу показать анимацию, когда пользователь нажимает на экран. Анимация тоже должна быть управляемой, так как она должна сбрасываться после каждого нажатия.

Что я пробовал: 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, image: AssetImage ('images / mygif.gif'), контроллер: _animationCtrl, );

Проблема: она работает только тогда, когда она не наложена. Когда GifAnimation добавляется как дочерний элемент в Overlay, он вообще не отображается.

  1. Используйте Flame для запуска спрайт-листа Проблема: AnimationAsWidget не соответствует моим требованиям, так как мне нужно управлять анимацией. Другие способы сделали бы мой код слишком сложным, так как я не собираю игру.

Есть ли какое-нибудь решение по этому поводу? Заранее спасибо.

...