// jquery.events.frame.js
// 1.1 - lite
// Stephen Band
//
// Project home:
// webdev.stephband.info/events/frame/
//
// Source:
// http://github.com/stephband/jquery.event.frame
(function(jQuery, undefined){
var timer;
// Timer constructor
// fn - callback to call on each frame, with context set to the timer object
// fd - frame duration in milliseconds
function Timer( fn, fd ) {
var self = this,
clock;
function update(){
self.frameCount++;
fn.call(self);
}
this.frameDuration = fd || 25 ;
this.frameCount = -1 ;
this.start = function(){
update();
clock = setInterval(update, this.frameDuration);
};
this.stop = function(){
clearInterval( clock );
clock = null;
};
}
// callHandler() is the callback given to the timer object,
// it makes the event object and calls the handler
// context is the timer object
function callHandler(){
var fn = jQuery.event.special.frame.handler,
event = jQuery.Event("frame"),
array = this.array,
l = array.length;
// Give event object properties
event.frameCount = this.frameCount;
// Call handler on each elem in array
while (l--) {
fn.call(array[l], event);
}
}
if (!jQuery.event.special.frame) {
jQuery.event.special.frame = {
// Fires the first time an event is bound per element
setup: function(data, namespaces) {
if ( timer ) {
timer.array.push(this);
}
else {
timer = new Timer( callHandler, data && data.frameDuration );
timer.array = [this];
// Queue timer to start as soon as this thread has finished
var t = setTimeout(function(){
timer.start();
clearTimeout(t);
t = null;
}, 0);
}
return;
},
// Fires last time event is unbound per element
teardown: function(namespaces) {
var array = timer.array,
l = array.length;
// Remove element from list
while (l--) {
if (array[l] === this) {
array.splice(l, 1);
break;
}
}
// Stop and remove timer when no elems left
if (array.length === 0) {
timer.stop();
timer = undefined;
}
return;
},
handler: function(event){
// let jQuery handle the calling of event handlers
jQuery.event.handle.apply(this, arguments);
}
};
}
})(jQuery);pragmatic play live casino offers
book of justice athenas glory
live casino with low minimum deposit
video game goleada millionaria
bonus buy games sweet dream bonanza claw
merry scary christmas
slot shields of lambda
video game hamster mania
horizon hunters
bonus buy games royal xmass 2
bonus buy games egypt s sun
oksport betting on live sports
bonus buy games western wilds megaways 94
bonus buy games jam bonanza
pinata smash
slot spirit blast
bonus buy games wild one
bonus buy games queen of the forest autumn kingdom
legion x
help slot win
live casino dealers free play
book of thieves
bonus buy games miss neko
bonus buy games fruit burst
pragmatic play online roulette live
OK sport