Moto.js —— 为动画而生

一、什么是 Moto.js

在介绍Moto.js前,先说一下Popmotion。日常开发中Popmotion用起来可以说是很舒服了, 直到有一天来了一个需求,大概要实现下面这样的效果:

最初打算接入物理引擎,这样效果逼真又省事。这就意味着,结果不可控。

最后,只能通过固定路径去实现了。路径点很容易确定,但是如何让小球沿着路径点平滑移动呢?

研究一下发现,Catmull Rom是个不错的选择。

Moto.js的雏形就此形成,封装了Catmull RomBezierCubic Bezier同时支持tweenchaincomposite。与Popmotion保持相同的调用方式。

二、如何使用

哎哟,不错的样子。怎么用呢?

安装

NPM 方式:

npm i @tuia/moto.js
复制代码

script 引入:

<script src="//unpkg.com/@tuia/moto.js/dist/moto.min.js"></script>
复制代码

开发

import {tween} from '@tuia/moto.js'

tween({
  from: 0,
  to: 100,
  duration: 1 // 单位: s
}).start(v => console.log(v))
复制代码

用过Popmotion的同学一定会觉得:咦~~,这和Popmotion有什么区别?就是duration的单位从ms变成了s

曲线

当然不能只简单复制Popmotion的功能,毕竟初衷是简化开发过程中绘制曲线重复的工作量。所以上面的功能,只能算是额外的附赠品。

import {curve} from '@tuia/moto.js'

curve.catmullRom({
  points: [
    {x: 50, y: 50},
    {x: 100, y: 150},
    {x: 200, y: 100},
    {x: 300, y: 50},
    {x: 350, y: 150}
  ]
}).start(v => {
  // todo
})
复制代码

对,上面的代码稍加修饰一下,就是下面的样子。

三、总结

Moto.js一个支持曲线运动的动画库。持续开发中,欢迎各位添砖加瓦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值