nhz.lib
Version:
NHZ Library
42 lines (35 loc) • 1.25 kB
JavaScript
/* browser.NextAnimationFrame(callbacks...) */
var NextAnimationFrame,
slice = [].slice;
module.exports = NextAnimationFrame = (function() {
function NextAnimationFrame() {
var callbacks;
callbacks = 1 <= arguments.length ? slice.call(arguments, 0) : [];
if (!(this instanceof NextAnimationFrame)) {
return (new NextAnimationFrame(callbacks)).start();
}
this.callbacks = (callbacks[0] instanceof Array ? callbacks[0] : callbacks);
}
NextAnimationFrame.prototype.start = function() {
requestAnimationFrame((function(_this) {
return function(elapsed) {
var callback, i, len, ref, ref1;
ref = _this.callbacks;
for (i = 0, len = ref.length; i < len; i++) {
callback = ref[i];
if (typeof callback === "function") {
callback(elapsed);
}
}
return (ref1 = _this.next) != null ? typeof ref1.start === "function" ? ref1.start() : void 0 : void 0;
};
})(this));
return this;
};
NextAnimationFrame.prototype.then = function() {
var callbacks;
callbacks = 1 <= arguments.length ? slice.call(arguments, 0) : [];
return this.next = new NextAnimationFrame(callbacks);
};
return NextAnimationFrame;
})();