如何预缓存flutter flare动画
How to pre-cache flutter flare animation
我有一个需要时间来加载的耀斑加载动画。有没有办法预缓存 flutter 动画?
final AssetProvider assetProvider = AssetFlare(bundle: rootBundle, name: 'assets/animations/loop.flr');
cachedActor(assetProvider);
这是缓存演员的代码吗?
那么如何加载缓存的动画呢?
来自 https://github.com/2d-inc/Flare-Flutter/issues/180#issuecomment-550584347
您可以使用 FlareCacheBuilder
来帮助您为应用的某些部分预加载 flr 文件
代码片段
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey,
appBar: AppBar(title: Text(widget.title)),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: FlareCacheBuilder(
["assets/Filip.flr"],
builder: (BuildContext context, bool isWarm) {
return !isWarm
? Container(child: Text("Loading..."))
: FlareActor(
"assets/Filip.flr",
alignment: Alignment.center,
fit: BoxFit.contain,
animation: _animationName,
);
},
),
)
],
),
),
);
}
如果您想要 'global' 加载到您的 .flr 文件,正确的方法是使用 cachedActor
就像您发布的那样。
假设您之前执行过:
final assetProvider = AssetFlare(bundle: rootBundle, name: 'assets/animations/loop.flr');
await cachedActor(assetProvider);
当您尝试在 FlareActor
中使用相同的 .flr
时,它会首先尝试从您之前填充的同一缓存中加载此资产。
在 this example 中,Flare 团队正是这样做来预热一些文件的。但请注意,他们对 cachedActor
.
使用了旧的语法规则
您可以在源代码here and here中看到,当加载资产时,它会首先尝试从缓存中加载。
最后一件事要完成,FlareCacheBuilder
在内部使用相同的 cachedActor
方法。
我有一个需要时间来加载的耀斑加载动画。有没有办法预缓存 flutter 动画?
final AssetProvider assetProvider = AssetFlare(bundle: rootBundle, name: 'assets/animations/loop.flr');
cachedActor(assetProvider);
这是缓存演员的代码吗? 那么如何加载缓存的动画呢?
来自 https://github.com/2d-inc/Flare-Flutter/issues/180#issuecomment-550584347
您可以使用 FlareCacheBuilder
来帮助您为应用的某些部分预加载 flr 文件
代码片段
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey,
appBar: AppBar(title: Text(widget.title)),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: FlareCacheBuilder(
["assets/Filip.flr"],
builder: (BuildContext context, bool isWarm) {
return !isWarm
? Container(child: Text("Loading..."))
: FlareActor(
"assets/Filip.flr",
alignment: Alignment.center,
fit: BoxFit.contain,
animation: _animationName,
);
},
),
)
],
),
),
);
}
如果您想要 'global' 加载到您的 .flr 文件,正确的方法是使用 cachedActor
就像您发布的那样。
假设您之前执行过:
final assetProvider = AssetFlare(bundle: rootBundle, name: 'assets/animations/loop.flr');
await cachedActor(assetProvider);
当您尝试在 FlareActor
中使用相同的 .flr
时,它会首先尝试从您之前填充的同一缓存中加载此资产。
在 this example 中,Flare 团队正是这样做来预热一些文件的。但请注意,他们对 cachedActor
.
您可以在源代码here and here中看到,当加载资产时,它会首先尝试从缓存中加载。
最后一件事要完成,FlareCacheBuilder
在内部使用相同的 cachedActor
方法。