作者:李威
在H5项目中如果有动画需求,一个常见的流程是设计师用 After Effect 制作动画,然后导出为序列帧。
序列帧就是一张张图片,快速连续播放就能成为动画,但是在H5里直接播放序列帧对网络性能不是很友好,有可能会造成卡顿或者丢帧,所以通常还会将其拼接成一张大图,即「精灵图」或者「雪碧图」(sprite image)。
拼精灵图可以用PS、Sketch等图像处理工具手工拼接,也可以找一些专门的工具制作。拼完之后,还需要根据动画的时长、帧率、尺寸等参数写相应的代码,比较常见的是写成CSS代码来使用。
具体怎么用的可以参考这篇文章:
https://aotu.io/notes/2016/05/17/css3-animation-frame/
当动画量很大,或者需要频繁修改的时候,这个流程就会比较繁琐,在这里和大家介绍一下我写的一个AE脚本,可以一键导出动画为CSS精灵图及代码,不需要先导出序列帧再拼接了。
先简单介绍一下什么是AE脚本。
AE是一款强大的动画制作软件,内置了丰富的功能,同时也提供了一定的外部扩展能力,可以让用户基于软件提供的接口自己做一些「扩展」。
目前来说AE的「扩展」分三种:
插件(plug in)、脚本(script)、扩展程序(extension)
其中「脚本」可以理解为用一些命令调用AE本身的功能来组合施展,提高效率,后缀名是.jsx
或者.jsxbin
。
下载 CSS-Sprite-Exporter.jsx
文件,在这里右键 - 链接另存为
.
打开AE, 点击 文件
->脚本
->运行脚本文件...
然后选择刚才下载的 CSS-Sprite-Exporter.jsx
。
或者可以复制 CSS-Sprite-Exporter.jsx
到AE的脚本文件夹:
Windows:C:\Program Files\Adobe\Adobe After Effects <版本>\Support Files\Script\
Mac:/Applications/Adobe After Effects <版本>/Scripts/
这样你就可以从 文件
->脚本
中直接选择CSS-Sprite-Exporter
了
这也是很多脚本的通用安装/运行方法。
#mySprite { /*导出时指定的「ID名」*/
background-image: url('images/boom.png');/*精灵图路径*/
width: 500px;
height: 500px;
/*导出时指定的「动画名」*/
animation: myAnimation 1.42s steps(1) infinite;
}
@keyframes myAnimation {
0% { background-position: 0px 0px; }
2.94% { background-position: -500px 0px; }
5.88% { background-position: -1000px 0px; }
8.82% { background-position: -1500px 0px; }
……
/*此处省略,一直到100%*/
……
97.06% { background-position: -1500px -1500px; }
100.00% { background-position: -2000px -1500px; }
}
可以一键复制到剪贴板,方便快捷(使用了 Clipboard.js. )
这个H5案例主要是用CSS动画来实现的,其中有很多小人的动画,以及水波、沙漏等小元素是用精灵图实现
在这里右键 - 链接另存为
关于这个脚本大家有什么疑问或者建议都欢迎联系我
也欢迎到脚本的github项目地址帮我加个star,谢谢!
https://github.com/bigxixi/CSS-Sprite-Exporter