我正在使用pub.dartlang.org中的lottie_flutter: ^0.2.0
软件包。
我有2个独立的.json文件,这两个文件在我的资产文件夹中都是唯一命名的。
在在线Lottie预览器中查看它们,一切看起来都正确。两种动画都不一样。
当我实际加载资产并在项目中运行动画时,它在两个小部件中都显示了EXACT SAME资产。我可以很好地加载备用的.json动画,但是我想,因为我使用的2个动画在外观上是如此相似,这在某种程度上显示了相同的资产,而不是正确的资产。
void _loadButtonPressed(String assetName) {
loadAsset(assetName,context).then((LottieComposition composition) {
setState(() {
_assetName = assetName;
_composition = composition;
_controller.reset();
});
});
}
loadAsset
Future<LottieComposition> loadAsset(String assetName,BuildContext
context) async {
print("loading asset : "+assetName);
return await DefaultAssetBundle.of(context)
.loadString(assetName,cache: false)
.then<Map<String, dynamic>>((String data) => json.decode(data))
.then((Map<String, dynamic> map) =>LottieComposition.fromMap(map));
}
和我的构建方法
@override
Widget build(BuildContext context) {
return Center(
child: Container(
width: 200,
height: 200,
child: Transform(transform: Matrix4.translationValues(0.0, 20.0,
0.0),
child: Transform.scale(
scale: 2.0,
child: Lottie(
composition: _composition,
size: const Size(200.0, 200.0),
controller: _controller,
),
),
),
));
}
}
我认为不包括实际的JSON文件,因为它们来自客户端。