乐读文学

硬核运营 : 技术流新媒体养成

乐读文学 > 科普学习 > 硬核运营 : 技术流新媒体养成

第30页

书籍名:《硬核运营 : 技术流新媒体养成》    作者:计育韬






animate  Motion

让图像沿着某条轨迹运动的动画由animate  Motion完成,它的书写方式比较特殊。如果要定义运动轨迹,那么首先要绘制该轨迹。绘制完毕后,再将其贝塞尔曲线作为animate  Motion的path值导入。

所以请在*Adobe  *Illustrator中使用钢笔工具自制一条轨迹,然后按照如下规则进行轨迹的替换。其中代码开始位置的是轨迹展示,其引用于rect的animate  Motion中。




c52.3-16.3,39-144.4,88-156c59.1-14,120.3,162.4,210,155c32.8-2.7,57.5-29,73-50"stroke=#841A1A  fill="none"/>




path="M52,1521c49,68.5,108.7,136.2,151,123

c52.3-16.3,39-144.4,88-156c59.1-14,120.3,162.4,210,155c32.8-2.7,57.5-29,73-50"

rotate="auto"

dur="2.5s"  repeat  Count="indefinite">





其中rotate="auto"的意义在于确定形状运动的朝向。比如我们设计一个飞机沿地表路线飞行的动画,毫无疑问机头必须指向当前切线方向。

将代码复合

至此,你已经学习了白名单中的全部特效表达,看似都十分简单明确,但如何实现效果显著的交互案例呢?答案就是对代码进行复合。

实际上,大多数动效并不是单一的,而是多种动效组合产生的结果。我们以一个世界杯主题的小游戏为例,来看一个大型作品如何逐步拼装完成。请在JZCreative公众号中回复“svg0107”,先体验一下。

这个复杂案例基本融合了白名单中最重要的几种动效设计,我们简要解读如下。

在整个画面背景中,观众看台的闪光灯通过opacity实现。不过其鳞次栉比的效果,是通过将一个dur中多个values设置为0的方式,使它们在每个循环内熄灭一段时间实现的。





接下来,画面出现的是下坠的足球、展板等元素。这几个要素的显著特征是弹跳感。这须通过路径本身的折返和中途values的长度差异实现。





足球的运动及触发后的飞行动效,是本作品中最复杂的交互结构。球体本身由诸多路径组成,涉及以下动画:

·  自转;

·  横向移动到画布内并离开画布;

·  点中后最初的自转停止;

·  点中后横向移动停止;

·  点中后新的自转开始;

·  点中后发生位置移动(直线或沿轨迹);

·  点中后球体逐步缩小;

·  抵达路径终点时自转停止;

·  抵达终点后慢慢消失。

一共9个动画,其中7个涉及触发。

其中1号出现的足球动画相关代码如图3-21所示。

图3-21  足球动画相关代码



这么长的动效复合并不是一蹴而就的,而是按顺序逐步添加的。

第一步,我们并不需要足球支持点击触发,而是实现球体自转并从右侧滚入屏幕再离开。就rotate和translate而言,如果两者直接平行组合就会形成一个螺旋动画,因为rotate需要指定中心点。

这里我们采用一个更讨巧的办法。

1.将足球固定在画布左上角,以画布原点为圆心进行旋转,所以我们看到这段代码中的球体旋转动画如下。



其中的end参数是之后要解决点击后停止的效果,不必在第一步添加。

2.在足球外增加一个标签,对整个群组设置位移动画。



这样我们就可以避免rotate和translate互相发生关系。为什么在代码的开头,你没有看到后续足球出现在屏幕左上角?因为笔者最后通过一个白色rect直接覆盖了右上方,把后面的所有足球都挡住了。

第二步,确定足球将直接发生的后续动画,包括透明度、缩放、新的自转等,它们都被写入了和足球初始自转平行的代码区。