在互联网行业,特别是直播和视频类app中,酷炫的动画或者是图片的序列帧播放是必不可少的。
借鉴一下网上的图,公司项目图不能上传。感谢:
在业内的app中有可能解决方案,如下:
方案一:帧动画OpenGL加载;
方案二:属性动画;
方案三:Gif或WebP;
方案四:SVGA或者Lottie(两种原理相近但是SVGA效率更好)
对比以上:方案一、二、三:图片大小问题,播放资源占用高(当时测试的机子,内存占用约30MB/CPU占用约50%),gif效果差(只支持8位颜色)而方案四,解决了前面三个方案的问题。
SVGA 与Lottie对比(借鉴一下:感谢: )
从CreateJS/Lottie实现的原理来看,都是将设计软件中的时间轴完整地导出来,包括里面的各种关键帧信息、矢量路径、样式等等。其中,最为关键的是『关键帧』!由于使用的是关键帧动画描述,那么对应的Player就难免变得复杂起来。如果只是简单的一次线性方程,比如,物体从A点匀速移动至B点,还OK。但是,当遇到二次线性方程、贝塞尔曲线方程这些高阶插值计算的时候,Player就会很吃力。(矢量动画就是通过一些公式能表达的矢量线条和色块,以此来表示每一帧动画)
CreateJS可以导出Flash动画,Lottie可以导出After Effects动画,但是它们都不能导出对方的动画(每种设计工具的脚本都是不一致的),这也意味着,你家的设计师只能使用其中一种设计工具。
Lottie在导出位