SVGA使用文档

SVGA动画介绍:

SVGA是YY开发的一种跨平台的开源动画格式,同时兼容 iOS / Android / Flutter / Web 多个平台的动画格式。

SVGA实现原理

SVGA动画其实就是把 Flash 或者AE 文件中的所有动画元素(位图、矢量)给提取出来,并将其在时间轴中的每帧的动画元素(位移、缩放、 旋转、透明度)导出,然后通过Player将这些信息还原

[图片上传失败...(image-a6e917-1599706046809)]

优点:

1.跨平台支持

2.集成简单,使用方便,免去写代码困扰

3.可替换指定元素

4.支持音频播放(暂不支持自定义修改)

缺点:

1.复杂动画解析较慢,对低端设备可能会卡顿

2.不适合交互的场景

3.官方只支持OC,不支持swift

集成指南

官方 GitHub:https://github.com/yyued/SVGAPlayer-iOS,

pod 'SVGAPlayer'

用法

1.创建一个 SVGAPlayer 实例

SVGAPlayer *player = [[SVGAPlayer alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
[self.view addSubview:player];
2.创建一个 SVGAParser 实例,使用以下方法从应用包中加载动画

  1. 本地加载动画
  SVGAParser *parser = [[SVGAParser alloc] init];
  [parser parseWithNamed:@"xxx" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
    
    } failureBlock:nil];
  1. 从远端服务器中加载动画
SVGAParser *parser = [[SVGAParser alloc] init];
[parser parseWithURL:[NSURL URLWithString:@"https://xxxx"] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {

} failureBlock:nil];

3.更改svga文件元素,key是和设计共同定义好的,或者在文件解析完从item中可以获取到


image.png
  1. 可以根据动画回调,添加业务处理
// 动画结束
- (void)svgaPlayerDidFinishedAnimation:(SVGAPlayer *)player;

// 播放到进度(百分比0-1)

- (void)svgaPlayerDidAnimatedToPercentage:(CGFloat)percentage;

- (void)svgaPlayerDidAnimatedToFrame:(NSInteger)frame;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容