Lottie 动画里有图片?有动画效果但图片加载不出来?

简介: Lottie 动画里有图片?有动画效果但图片加载不出来?

引言

Lottie 是 Airbnb 开源的一套跨平台的完整的动画效果解决方案,设计师只需要使用 After Effectes (之后简称 AE)设计出动画之后,使用 Lottic 提供的 Bodymovin 插件将设计好的动画导出成 JSON 格式,就可以直接运用在 iOS、Android 和 React Native之上,无需关心中间的实现细节。

网络异常,图片无法展示
|

问题描述

公司使用lottie-web动画框架,设计师给了一个带有图片资源的json文件,渲染出来之后会发现具有动画效果,但是图片未加载出来,如下图:

网络异常,图片无法展示
|

设计师给的文件如下:

**.json

images/**.png

网络异常,图片无法展示
|

前端代码如下:

import ExchangeSuccessJson from 'static/json/exchange_v_success1.json';
lottie.loadAnimation({
  container: ele,
  renderer: 'svg',
  loop: true,
  autoplay: true,
  animationData: ExchangeSuccessJson,
});
复制代码

解决方法

其实 Lottie 动画所需要的图片资源也是可以集成在动画的 JSON 文件中,因此解决方法就是将图片资源整合到动画的 JSON 文件

我在这篇文章Lottie 动画里有图片怎么办?设计师小姐姐也能帮你减少开发量!里看到了一些解决方案,但是我发现需要跟设计师沟通,让设计师去将图片整合进动画资源,然后再重新生成发给前端。然而作为一名有追求的前端工程师,是否可以自己去快速解决这个问题呢?有的!

前端快速整合图片进动画文件

把文件打包成gzip,上传到design.alipay.com/lolita,压缩以后导出成单独一个json文件。项目中使用这个新的json文件即可。

自己动手,丰衣足食!到此就可以轻松加载图片,并还原动画效果了。

额外:实现lottie动画前几帧播放一次,后面所有的帧数重复播放

上述使用的动画,图片问题已经解决了,但是设计师说他想要的动画效果是前几帧播放一次,后面所有的帧数重复播放。而设计师做出来的lottie动画肯定是播放一次的,前端需要就后几帧进行重复播放,如何做?

import ExchangeSuccessJson from 'static/json/exchange_v_success1.json';
lottieAnimate.current = lottie.loadAnimation({
  container: ele,
  renderer: 'svg',
  loop: true,
  autoplay: true,
  animationData: ExchangeSuccessJson,
});
lottieAnimate.current.addEventListener('complete', () => {
  // 假设0-43帧播放一次后,后续的所有循环播放
  lottieAnimate.current && lottieAnimate.current.goToAndPlay(43, true);
});



相关文章
|
JSON 编解码 前端开发
说lottie谁是lottie?
说lottie谁是lottie?
113 0
|
1月前
Threejs实现动画
这篇文章讲解了如何使用Three.js实现动画效果,并介绍了如何控制动画的时间轴。
49 3
Threejs实现动画
|
1月前
Threejs播放模型自带动画
这篇文章介绍了在Three.js中如何播放带有预设动作的模型动画,并特别提到了如何设置动画循环模式以实现一次性播放效果。
49 3
Threejs播放模型自带动画
|
1月前
ThreeJs使用tweenjs动画库制作动画
这篇文章介绍了如何在Three.js中使用Tween.js动画库来简化动画制作流程,并演示了如何通过简单的代码实现动画效果。
74 1
ThreeJs使用tweenjs动画库制作动画
|
1月前
|
JavaScript 开发者
HarmonyNext动画大全03-帧动画
HarmonyNext动画大全03-帧动画
19 2
|
1月前
|
JavaScript
ThreeJs实现简单的动画
这篇文章介绍了如何使用Three.js实现简单的动画效果,并提供了利用requestAnimationFrame动态改变模型状态的代码示例。
56 0
ThreeJs实现简单的动画
|
4月前
|
前端开发
css特效动画——转圈的加载动画
css特效动画——转圈的加载动画
68 0
|
5月前
|
前端开发
canvas与CreateJS实现图片动画
canvas与CreateJS实现图片动画
CSS3 animation 全屏图片切换动画
CSS3 animation 全屏图片切换动画
56 0
|
XML Android开发 数据格式
Android 动画之帧动画(也叫图片动画)的用法
Android 动画之帧动画(也叫图片动画)的用法
176 0