Как воспроизводить одну и ту же анимацию Flare на каждом касании? - PullRequest
0 голосов
/ 06 апреля 2019

Я могу запускать анимацию только тогда, когда объект повернут таким образом?

class _MyHomePageState extends State<MyHomePage> {
  bool isOpen = false;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: GestureDetector(
        onTap: () {
          setState(() {
            isOpen = !isOpen;
          });
        },
        child: FlareActor('assets/heart.flr',
            animation: isOpen ? 'run' : 'x'),
      ),
    );
   }
  }

но мне нужно запускать одну и ту же анимацию при каждом нажатии, это не работает:

GestureDetector(
        onTap: () {
          setState(() {
          });
        },
        child: FlareActor('assets/heart.flr',
            animation: 'run'),
      )

Я тоже пробовал это:

GestureDetector(
        onTap: () {
          setState(() {
            isOpen = !isOpen;
          });
        },
        child: FlareActor('assets/heart.flr',
            animation: isOpen ? 'run' : 'run'),
      )

1 Ответ

0 голосов
/ 07 апреля 2019

У меня недавно была такая же проблема, когда я реализовывал некоторые вещи. И я получил ответ на свой вопрос: вы можете использовать FlareControls и просто вызывать play вместо клавиш для воспроизведения анимации. Оригинальный пост .

class _MyHomePageState extends State<MyHomePage> {
  // Store a reference to some controls for the Flare widget
  final FlareControls controls = FlareControls();

  void _playSuccessAnimation() {
    // Use the controls to trigger an animation.
    controls.play("run");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: FlareActor("assets/heart.flr",
          animation: "run",
          fit: BoxFit.contain,
          alignment: Alignment.center,
          // Make sure you use the controls with the Flare Actor widget.
          controller: controls),
      floatingActionButton: FloatingActionButton(
        onPressed: _playSuccessAnimation,
        tooltip: 'Play',
        child: Icon(Icons.play_arrow),
      ),
    );
  }
}

У меня также есть видео , объясняющее, как интегрировать эти анимации и воспроизвести ту же самую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...