想写这个也是好长时间的之前了,因为1偷懒2技术不达标始终不敢提笔写。。。今天处理了些个人问题,把这个运动算法的思路给大家写写吧~ 首先我们要掌握两个概念: 1匀速直线运动 s=s初+vt 2帧 对于js的动画来说,我们可以完全不考虑“时间”这个概念,转而考虑“帧数”这个动画的通用概念。为了方便理解,先把时间与帧联系起来。 [crayon-50361fa014e7b/] 以上函数的概念是每隔40毫秒执行一次,而帧的概念是一秒执行多少次,这样 [crayon-50361fa015263/] 之后我们可以推导公式,根据s=s初+vt 1:初始位置 begin 简称b 2:总共的帧数 all 简称a 3: 当前已经经过的帧数now 简称n 4: 总移动距离position 简称p 我们可以引入 “帧速” 即每一帧经过的距离为p/a 则第n帧经过的距离= n/a*p+b 即总距离/总帧数*经过的帧数+原始距离=现在的距离 之后我们用函数来表示 [crayon-50361fa015643/] [crayon-50361fa015a33/] [crayon-50361fa015e13/] 上面主要讲了匀速直线运动的算法,其实js的动画效果有很多,比如加速运动,减速运动等。为了方便我们的整合,也为了让函数更清晰利于维护,参考网上的资料,我把(1)的函数面向对象化改写 [crayon-50361fa016204/] [crayon-50361fa0165e4/] »本文地址:http://99jty.com/?p=347 »订阅本站:http://winysky.com/feed/»当你从RSS阅览器里看到这篇文章时,还没有评论,还不赶紧过来抢沙发?