• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發javascript|JQuery → JavaScript版變速齒輪開發手記

    JavaScript版變速齒輪開發手記

    前往專題相關軟件相關文章發表評論 來源:EtherDream時間:2012/5/29 16:53:15字體大?。?em class="fontsize">A-A+

    作者:EtherDream點擊:24次評論:0次標簽: 變速齒輪

    NB變速齒輪1.0 綠色去廣告版
    • 類型:游戲其他大?。?i>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)變速齒輪
      變速齒輪是什么變速齒輪原指一種機械裝置?,F多指操作系統中改變游戲速度的程序。變速齒輪幾乎可以改變任何游戲的速度。除了游戲,它也能改變任何時間相關的程序的速度,例如視頻播放網頁等。為什么有的游戲不能用變速齒輪操作系統,會有少部分游戲不能正常運行。出于安全方面的考慮非常多,很多東西默認是不打開的。也許就是這樣一個特性造成你說的原因。游戲變速齒輪哪個好其實很多出名的游戲修改其中都內含變速齒輪插件,西西玩...更多>>

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(0)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>