raf-timer
Version:
An abstraction around requestionAnimationFrame.
3 lines • 2.83 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["raf-timer"]=t():e["raf-timer"]=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),u=i(o),m=n(2),c=0,l=0,f=null,s={},d=function(e){f=null;for(var t in s)s[t](e),delete s[t]},p=function(){function e(){var t=arguments.length<=0||void 0===arguments[0]?.25:arguments[0];r(this,e),this.microTime=(0,u.default)(),this.deltaTime=0,this.deltaTimeLimit=t,this.animationFrameID=null}return a(e,[{key:"cancelFrame",value:function(){delete s[this.animationFrameID],0===c&&((0,m.cancelAnimationFrame)(f),f=null)}},{key:"nextFrame",value:function(e){var t=l++;c++,s[t]=e,this.animationFrameID=t,null===f&&(f=(0,m.requestAnimationFrame)(d))}},{key:"step",value:function(){var e=(0,u.default)()-this.microTime;return this.deltaTime=Math.max(0,Math.min(this.deltaTimeLimit,e/1e3)),this.microTime+=e}},{key:"delta",get:function(){return this.deltaTime}},{key:"fps",get:function(){return 0===this.deltaTime?0:1/this.deltaTime}},{key:"time",get:function(){return this.microTime}}]),e}();t.default=p},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});
// @license http://opensource.org/licenses/MIT
var n="performance"in window?window.performance:{},i=Date.now||function(){return(new Date).getTime()},r=void 0;if("now"in n==0){var a=i();n.timing&&n.timing.navigationStart&&(a=n.timing.navigationStart),r=function(){return i()-a}}else r=n.now.bind(n);t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});for(var n=t.requestAnimationFrame=window.requestAnimationFrame,i=t.cancelAnimationFrame=window.cancelAnimationFrame,r=0,a=["ms","moz","webkit","o"],o=0;o<a.length&&!n;++o)t.requestAnimationFrame=n=window[a[o]+"RequestAnimationFrame"],t.cancelAnimationFrame=i=window[a[o]+"CancelAnimationFrame"]||window[a[o]+"CancelRequestAnimationFrame"];n||(t.requestAnimationFrame=n=function(e){var t=(new Date).getTime(),n=Math.max(0,16-(t-r)),i=window.setTimeout(function(){e(t+n)},n);return r=t+n,i}),i||(t.cancelAnimationFrame=i=function(e){clearTimeout(e)})}])});