Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Animation Flare艺术板项目在Flare角色上渲染需要时间_Animation_Dart_Flutter_Flare - Fatal编程技术网

Animation Flare艺术板项目在Flare角色上渲染需要时间

Animation Flare艺术板项目在Flare角色上渲染需要时间,animation,dart,flutter,flare,Animation,Dart,Flutter,Flare,我有一个Flare字符,当我更新节点时,我必须按它们的节点显示一些项目,并且项目显示在字符上,这需要一些时间并且会延迟,在我的character类中,每当我点击项目选择项目时,整个类都在更新,它的initState再次调用,我正在使用ScopedModel更新状态 这是我正在使用的flare角色的链接 我的main.dart class _MyAppState extends State<MyApp> { @override Widget build(BuildContex

我有一个Flare字符,当我更新节点时,我必须按它们的节点显示一些项目,并且项目显示在字符上,这需要一些时间并且会延迟,在我的
character
类中,每当我点击项目选择项目时,整个类都在更新,它的initState再次调用,我正在使用
ScopedModel
更新状态

这是我正在使用的flare角色的链接

我的
main.dart

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    Item item1 = Item('brac1');
    Item item2 = Item('glasses1');
    return MaterialApp(
      home: ScopedModel<AppModel>(
        model: AppModel(),
        child: Scaffold(
          body: Container(
            child: Column(
              children: <Widget>[
                Expanded(
                  flex: 6,
                  child: ScopedModelDescendant<AppModel>(
                      builder: (context, child, model) {
                    return ChimpCharacter(
                      itemNames: model.items,
                      key: UniqueKey(),
                    );
                  }),
                ),
                Expanded(
                  flex: 4,
                  child: ScopedModelDescendant<AppModel>(
                    builder: (context, child, model) {
                      return Wrap(
                        spacing: 100.0,
                        children: <Widget>[
                          RaisedButton(
                            color: Colors.blue,
                            elevation: 3.0,
                            onPressed: () {
                              model.addItem(item1);
                              print('model is ${model.items}');
                            },
                            child: Text('Braclet'),
                          ),
                          RaisedButton(
                            color: Colors.blue,
                            elevation: 3.0,
                            onPressed: () {
                              model.addItem(item2);
                              print('model is ${model.items}');
                            },
                            child: Text('Glasses'),
                          ),
                        ],
                      );
                    },
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
import 'package:scoped_model/scoped_model.dart';

class AppModel extends Model {
  List<Item> _items = [];
  List<Item> get items => _items;

  void addItem(Item item) {
    this._items = items;
    if (_items.contains(item)) {
      _items.remove(item);
    } else {
      _items.add(item);
    }
    notifyListeners();
  }
}

class Item {
  String itemName;
  Item(this.itemName);
}
我的黑猩猩,飞镖

class ChimpCharacter extends StatefulWidget {
  ChimpCharacter({Key key, this.itemNames}) : super(key: key);

  final List<Item> itemNames;

  @override
  _ChimpCharacterState createState() => _ChimpCharacterState();
}

class _ChimpCharacterState extends State<ChimpCharacter>
    implements FlareController {
  List<String> items = [];
  FlareController flareController;
  @override
  void initState() {
    super.initState();
    print('initState called ');
    if (widget.itemNames != null) {
      widget.itemNames.map((s) {
        items.add(s.itemName);
      }).toList(growable: false);
    }
  }

  @override
  Widget build(BuildContext context) {
    return FlareActor(
      'assets/chimp.flr',
      alignment: Alignment.center,
      fit: BoxFit.contain,
      animation: 'walking',
      controller: this,
    );
  }

  @override
  bool advance(FlutterActorArtboard artboard, double elapsed) {
    // print('advance');
    if (items != null) {
      items.forEach((String item) {
        final ActorNode acceName = artboard.getNode(item);
        acceName.collapsedVisibility = false;
      });
    }

    return false;
  }

  @override
  void initialize(FlutterActorArtboard artboard) {}

  @override
  void setViewTransform(Mat2D viewTransform) {
    print('setViewTransform');
  }

  @override
  ValueNotifier<bool> isActive;
}
类字符扩展StatefulWidget{
字符({Key Key,this.itemNames}):super(Key:Key);
最后清单项目名称;
@凌驾
_ChimpCharacterState createState()=>\u ChimpCharacterState();
}
类_characterState扩展了状态
电子控制器{
列表项=[];
火炬控制器火炬控制器;
@凌驾
void initState(){
super.initState();
打印('initState called');
if(widget.itemNames!=null){
widget.itemNames.map((s){
项目。添加(s.itemName);
}).toList(可增长:假);
}
}
@凌驾
小部件构建(构建上下文){
回程扩口器(
“资产/chimp.flr”,
对齐:对齐.center,
适合:BoxFit.contain,
动画:《行走》,
控制员:这个,
);
}
@凌驾
bool advance(颤振板艺术板,双行程){
//打印(“预付款”);
如果(项!=null){
items.forEach((字符串项){
最终ActorNode acceName=artboard.getNode(项目);
acceName.collapsedVisibility=false;
});
}
返回false;
}
@凌驾
void初始化(拉板艺术板){}
@凌驾
void setViewTransform(Mat2D viewTransform){
打印('setViewTransform');
}
@凌驾
估价师是活跃的;
}