首页 文章

Flare Flutter动画

提问于
浏览
0

使用Flare Flutter(来自2dimensions.com)创建的动画无法在同一Flare Actor的不同动画之间切换 . 如果是黑色版本,则不会显示白色版本;如果白色版本是第一个,将显示黑色 .

我不确定我做错了什么或者它是否是一个错误 . 它可以在颜色之间切换,而不是动画 .

import 'package:flutter/material.dart';
import 'package:flare_flutter/flare_actor.dart';

const List<String> animations = ['White', 'Black'];
const List<Color> colors = [Colors.blue, Colors.black];

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Animation Tester',
      debugShowCheckedModeBanner: false,
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(title: 'Animation Tester'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int index = 0;
  void switchAnimation() {
    setState(() {
      index = index < (animations.length - 1) ? index + 1 : 0;
    });
  }

  @override
  Widget build(BuildContext context) {
    print(index);
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
          child: ListView(
        children: <Widget>[
          GestureDetector(
              onTap: switchAnimation,
              child: Icon(
                Icons.add,
                size: 100.0,
              )),
          Container(
              width: 200.0,
              height: 200.0,
              child: FlareActor(
                'assets/color_wheel_loading.flr',
                color: colors[index],
              )),
          Container(
              width: 200.0,
              height: 200.0,
              child: FlareActor(
                'assets/color_wheel_loading.flr',
                animation: animations[index],
              )),
          Center(child: Text('$index'))
        ],
      )),
    );
  }
}

1 回答

  • 0

    根据我的观察,Flare动画名称区分大小写 . 如果flare项目中的动画名称是小写的,则flare actor的动画属性也应该是小写的 .

相关问题