导读:Lottie 是一个很好的动画库,不同于FaceBook 的 POP,Lottie 主要是重现由AE(Adobe After Effects)实现的动画,具体方法是AE 导出一个json,Lottie 读取json 进行较为炫酷的动画。本文主要讲述从AE的bodymovin插件导出的JSON文件到Objective-c的LOTCompisition实体对象的过程。JSON文件包含做动画的一切信息,包括帧率、动画形态、图层、字体等等。
JSON字段解读
一级属性
JSON最外一层的数据,包括一个动画的基础数据:动画帧率、起始/结束关键帧,动画的宽高等,还有子图层的信息和关联的资源信息,如图片,矢量图等。
```JSON
{
"v": "5.6.10", // bodymovin插件版本
"fr": 25, // 帧率
"ip": 0, // 起始关键帧
"op": 277, // 结束关键帧
"w": 110, // 视图宽度
"h": 110, // 视图高度
"nm": "cloud", // 动画名称
"ddd": 0, // 是否是3D
"assets": [...] // 资源集合
"layers": [...] // 图层集合
}
```
assets 资源集合
assets是一个数组,资源信息包含的是矢量图信息,如形状,大小等等,也包含位图;还可能是预合成层,即对已存在的某些图层进行分组,把它们放置到新的合成中,作为新的一个资源对象,这儿layers的对象结构是上面一级属性中的layers图层集合是一样的
"assets": [
{
"id": "image_0", // 图片唯一识别的id,图层获取图片的标识
"w": 167, // 图片的宽度
"h": 16