西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发javascript|JQuery → JavaScript版变速齿轮开发手记

JavaScript版变速齿轮开发手记

前往专题相关软件相关文章发表评论 来源:EtherDream时间:2012/5/29 16:53:15字体大小:A-A+

作者:EtherDream点击:24次评论:0次标签: 变速齿轮

NB变速齿轮1.0 绿色去广告版
  • 类型:游戏其他大小:692KB语言:中文 评分:2.0
  • 标签:
立即下载

 在JS开发中经常会用到定时器,尤其是一些动画特效,小游戏等完全依靠定时器驱动。

  要让动画跑得更流畅,我们常常使用较高的刷新率,例如60fps。由于每一帧的间隔非常短,很难看清楚每一帧具体的运行情况。

  有时整体上看似乎一切良好,但如果放慢定时器的速度,却会发现其中有部分帧或因代码里的小问题,并没有按我们想象那样显示。由于播放的非常快,这些潜在的小问题都掩盖了。

  为了方便动画脚本的观察和调试,我们尝试用js模仿一个类似windows下经典的应用程序:变速齿轮,能即时修改系统时钟的运行频率!这听起来似乎很神奇吧~其实原理并不复杂。

  和传统的变速齿轮运行机制一样,我们使用钩子程序勾住默认那几个定时器相关的API —— setTimeout, setInterval, clearTimeout, clearInterval。当然,所谓的钩子程序,无非就是预先保存原来的API引用,接着用自己的程序覆盖他们。这样我们就可以拦截之后的定时器调用,然后根据虚拟时钟的速率,自己维护回调队列,于是就产生了定时器变速的效果。如果同步上再严密点,甚至还可以覆盖Date对象,让时间的流逝速度都随之而变!

  当然,有不少问题仍然难以解决的。

  时钟频率被加快后,每一帧的时间间隔被大幅缩短,甚至小于1ms。而js定时器频率众所周知,远达不到这样的精度。于是只能用“跳帧”来解决这个问题。例如,一个2ms的定时器,理论上应该每2ms触发一次,但某个浏览器最短只支持16ms的间隔,那么每次定时器触发内循环调用 16/2 = 8次回调,来弥补频率上的不足。但由于这8次回调是在同个事件里一口气执行的,所以前7次的界面操作都不会立即渲染出来,只有第8次的操作才会有所表现,所以就有了“跳”的感觉。

  但是这个方法只能解决 setInterval 的定时器,因为它的时间间隔以及回调都是固定的。对于 setTimeout 这样每次延时不确定的,甚至还无法确定下一帧是否接着运行,跳帧机制就有些无从为力了。

  不过只实现一个基本功能的还是比较容易的:

  JsGear,就是根据这个思路实现的 JavaScript 变速齿轮插件,对时间相关的API都进行了严密的封装。因为它完全是用js/css制作的,所以不依赖任何插件,引入页面就可以使用。

  为了让使用更快捷,这两天换了一个新概念的操作界面,并且支持IE6+, FireFox, Chrome, Safari, Opera浏览器,以及Quirks模式。

  测试Demo:  http://www.etherdream.com/JSGear/demo.html

  

  

  在自己的页面里测试很简单,把jsgear.js插入到所有的脚本之前就可以。这里上传了一份到博客附件里,复制下面代码到自己的页面内即可使用:

  <scrpt src="http://files.cnblogs.com/jsapp/jsgear.js"></script>

    当然,目前还只是演示版本,实现了基本功能,还有不少小问题。大家要是有什么好多思路和建议,欢迎探讨。

    KISSsoft齿轮系统
    (117)KISSsoft齿轮系统
    齿轮系统设计是专门针对的齿轮系统设计分析相关的应用软件,由苏州科士索福特精密科技有限公司出品的,齿轮系统设计软件在中国的销售和技术支持,其在齿轮及齿轮传动方面强大的国际工程背景,确保了其在行业内的技术领先地位。软件是齿轮设计齿轮传动系统设计及轴轴承设计的专业软件工具,也是全球唯一一款正向齿轮设计软件,它允许你从单个零部件一步一步完成整个齿轮箱的系统建模。同时也是世界上功能最强覆盖面最宽技术最深实用...更多>>
    变速齿轮
    (14)变速齿轮
    变速齿轮是什么变速齿轮原指一种机械装置。现多指操作系统中改变游戏速度的程序。变速齿轮几乎可以改变任何游戏的速度。除了游戏,它也能改变任何时间相关的程序的速度,例如视频播放网页等。为什么有的游戏不能用变速齿轮操作系统,会有少部分游戏不能正常运行。出于安全方面的考虑非常多,很多东西默认是不打开的。也许就是这样一个特性造成你说的原因。游戏变速齿轮哪个好其实很多出名的游戏修改其中都内含变速齿轮插件,西西玩...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)