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 实例,使用以下方法从应用包中加载动画
- 本地加载动画
SVGAParser *parser = [[SVGAParser alloc] init];
[parser parseWithNamed:@"xxx" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
} failureBlock:nil];
- 从远端服务器中加载动画
SVGAParser *parser = [[SVGAParser alloc] init];
[parser parseWithURL:[NSURL URLWithString:@"https://xxxx"] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
} failureBlock:nil];
3.更改svga文件元素,key是和设计共同定义好的,或者在文件解析完从item中可以获取到
image.png
- 可以根据动画回调,添加业务处理
// 动画结束
- (void)svgaPlayerDidFinishedAnimation:(SVGAPlayer *)player;
// 播放到进度(百分比0-1)
- (void)svgaPlayerDidAnimatedToPercentage:(CGFloat)percentage;
- (void)svgaPlayerDidAnimatedToFrame:(NSInteger)frame;
网友评论