zoukankan      html  css  js  c++  java
  • 动画方案 Lottie 学习(三)之设计师小姐姐给的 Lottie 动画中“带图片”,如何预览?

    一、Lottie 的动画资源分类

    1.1 Lottie 资源的不同

    Lottie 是 Airbnb 开源的一套跨平台的完整的动画效果解决方案,真正的做到了在客户端 100% 还原设计师的动画效果。设计师只需要使用 After Effectes(AE)设计出动画,再使用 BodyMovin 插件将动画导出成 JSON 文件,就可以在 iOS、Android 和 RN 上 100% 还原动画效果。

    Lottie 这种工作方式,是对不同的角色进行解耦,带来了更简洁的工作流。开发小哥哥不再担心动画实现困难,设计师小姐姐也不需要担心实现的效果会有偏差。

    再说回到本文的主题,动画预览的问题。

    设计师交付给我们的动画资源。都是静态的。虽然通常会有配套的动画播放视频。但是我们依然想在手机上真实的看看动画播放的效果,才能放心的投入编码的过程中。

    如果你对 Lottie 有了解(不了解也没关系,文末有几篇介绍 Lottie 的文章,可供查阅),你就会知道,设计师交付的动画通常有两种:

    1. 单独的 JSON 文件。

    2. JSON + 图片资源。

    对于单独的 JSON 动画文件,官网上有一个 h5-preview (https://www.lottiefiles.com/preview)的网站,将 JSON 文件拖拽进去就可以实现预览。同时在预览页面底部,会生成一个二维码,通过手机 App Lottie 中的扫码功能,就可以实现在手机端预览了。

    而对于第二种动画资源,JSON + 图片文件的预览,就没这么方便了。无论是 Preview 页面还是 Lottie App,都无法直接预览 JSON + 图片这种动画效果。

    1.2 为什么会有不同的格式

    有人很奇怪,为什么 AE 做出的动画,导出的动画资源会有所不同。

    其实这取决于 AE 动画的制作过程。如果动画操作的图片资源都是矢量图格式的,最终导出的动画就是一个单独的 JSON 文件,它会将矢量图硬编码到 JSON 文件中。

    相反,如果 AE 动画操作的资源是一张张的图片,则在导出的 Lottie 动画资源中,就会包含一个 images 文件夹,其中就包含了 Lottie 动画所需要的图片文件。

    就是这么一点区别,就导致了导出的动画资源不同。

    如果有必要,我们可以倒推设计师小姐姐,将动画中所用到的图片都矢量化,最终只导出一个 JSON 文件供我们使用。但是如果这样操作,后续动画资源的替换就不够灵活。

    例如上图这种动画,其实包含了三张图片资源,分别是信封、黄色的箭头、收信的文件夹。

    如果后续的产品需求,说要在信封图片上加一个红心,很正常的需求对吧?此时若是使用的图片资源,设计师只需要再给出一张带红心的信封图片,开发替换一下图片资源就好了,大家都很方便简单。

    你看,换一个动画效果可能就是换一个操作的图片资源就好了。本地资源当然随便换了,换 JSON 和换图片,对开发来说工作量是一样的。但是换个思路呢?动画中的图片,来自线上的资源,是根据场景动态设置的。除了穷举让设计师出很多套不同的 Lottie 资源,然后按需显示之外,使用带图片的 Lottie 动画,就显得非常简单了。

    二、lottie动画预览

    说完了为什么会存在带图片的 Lottie 动画,以及它的使用场景,如何在着手编码前,就预览设计师小姐姐交付的动画效果呢?

    2.1 单独的json文件

    单独的 Lottie-JSON 文件,预览非常的简单,官方提供的 proview 网页和 Lottie App 都提供了预览的方式。

    2.2 JSON + 图片资源

    其实到这里还是需要借助 Lottie App,在新版本的 Lottie App 的 Preview Tab 页面下,有个 “Enter a URL to a json or zip file”,选它就对了。

    它接受的是一个 URL,并且支持导入 zip 文件,这里只需要传入一个 JSON + 图片 的 zip 包的 URL,就可以了。

    压缩文件的结构如下:

    我们可以在本机上,使用 Python 搭建一个最简单的 HTTP 服务器。在本地动画 ZIP 包文件的文件夹下,执行下面的命令。

    python -m SimpleHttpServer 8099

    该命令会在本机上搭建一个 HTTP 服务器,监听 8099 端口,了解更多可以参考这篇文字☞《一行 Python 命令的 HTTP 服务器》。

    最开始我以为可以使用 Android 自己的文件系统路径来充当 URL,后来发现不行,必须是一个服务器上的 zip 包,才可以通过 Lottie App 进行预览。

    参考

    设计师小姐姐给的 Lottie 动画中“带图片”,如何预览?

     

  • 相关阅读:
    运算符的优先级(从高到低)
    常用字符与ASCII代码对照表
    02.数据类型常量与变量
    Java基础01
    2以太坊入门的方法2
    区块链学习笔记1
    5关键字this与super的区别
    4Java中成员变量与局部变量
    lua返回页面时中文乱码
    struts2中<jsp:forward>跳转时报404错误的问题
  • 原文地址:https://www.cnblogs.com/kunmomo/p/14110295.html
Copyright © 2011-2022 走看看