React Native动画方案

最近研究了一下React Native的动画实现方案,大概有这几种:

1. React Native内置动画

其中主要分为两类:Animated用于创建精细的交互控制的动画,LayoutAnimation用于全局的布局动画。

不过Animated仅封装了四个可以动画化的组件:View、Text、Image和 ScrollView,当然你也可以自己封装你自己的动画组件。
同时他还支持多个动画的组合,包括parallel(多个动画同时执行)、sequence(多个动画顺序执行)、stagge(多个动画过程中每隔一个延迟时间执行下一个)和delay(延时执行)。

应该说React Native提供的动画API其实还是比较丰富的。
但是,不要低估设计同学对动画的想象力,对于一个比较大型的App来说仅仅依靠这些,通常是没法满足要求的。所以,很多时候就需要依靠第三方库了。

2. react-native-animatable

一个start数超过6000的动画库。可以实现一些比较复杂的常规动画。例如:
Fading Exits

3.lottie-react-native

lottie是airbnb推出的一个动画库,它可以让设计师通过插件,将ps设计好的动画直接导出成为json文件,然后通过在客户端集成lottie库,直接将json解析成动画,绘制出来。大大简化了动画的实现难度和开发的工作量。不过有时从ps直接导出的动画和在客户端上的显示效果有差异,可能需要设计师调整设计方案,因此将原来客户端的一些工作量转移到了设计师身上,不过总体来说还是利大于弊。
lottie也提供了一套RN的实现方案,让你的动画轻松实现。
除了这些常规的动画方案,还有一些游戏引擎,也能实现动画。他们因为采用直接绘制的方案,有时在性能上会有很大的改善。不过在实现上,可能需要更多的工作量。

4.gl-react-native-v2

将opengl es进行了封装,通过RN提供了接口对外暴露。不过基本上已经停止更新,绝大多数代码已经2-3年没有动过了。提供了比较基础的opengl es的功能,对于要求不高的用户来说,可以尝试。不过在android上有bug,无法设置背景为透明,这样会导致通过OpenGL es绘制出来的内容都是黑色的背景。作者已经将下面这个库来替换这个库了。

5.react-native-webgl

将webgl通过RN接口对外暴露。实现了webgl的绝大多数接口和功能。不过对于客户端开发来说,webgl开发还是有比较大的难度的。这个代码实际来源于expo,作者本意是想着将expo的webgl部分代码更新实时同步到react-native-webgl中,不过理想是美好的,现在react-native-webgl也已经有两年没有更新了。

6. react-native-unity-view

将unity封装成一个view对外暴露出很多接口,可以让RN直接使用。

7.react-native-cocos2dx

cocos2dx的RN封装,不过看start和下载数量,使用的人应该不多,而且我是用最新的RN版本,折腾了半天也没有把他配置好。而且需要更改RN中的一些代码。并且两年多没有更新了,如果要使用可能需要折腾一番才能。

当然,还有一些更重一点的定制化游戏RN引擎,例如react-game-kit或者react-native-game-engine,或者阿里也开源了几个方案GCanvas、G3D和BindingX,但是没太研究过,毕竟去年才出现阿里开源库的圣诞节雪花事件。

除了上面1,2,3那几个库,其他的几个库配置起来真的各种坑,再次吐槽一下react native以及各种库的版本兼容。

其实我自己最开始只是想要找一个可以顺序播放图片的动画库,找了一下,stackoverflow上已经有了答案,不过实际播放效果并不好,主要是因为RN中图片的解析是异步的,而且没有缓存,所以快速切换显示图片的时候,经常会出现图片解析顺序和你所期望的播放顺序不同,或者有时直接就出现短暂的白屏。因此才期望寻找一种简便、高效的实现方案,可惜到现在也没有找到。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,873评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,483评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,525评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,595评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,018评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,958评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,118评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,873评论 0 208
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,643评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,813评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,293评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,615评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,306评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,170评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,968评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,107评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,894评论 2 278

推荐阅读更多精彩内容