silk.events = ( xb.core.object.extend( { ctor: function() { this.events = []; }, add: function( events ) { var self = this; var events = ( ( events instanceof Array ) ? events : [ events ] ); for ( i = 0, il = events.length; i < il; i++ ) { var cEvt = events[ i ]; if ( ! ( cEvt.on instanceof Array ) ) { cEvt.on = [ cEvt.on ]; } this.events.push( cEvt ); console.log( "register", cEvt.element, cEvt.on, cEvt.method ); cEvt.running = false; cEvt.hndlr = {}; for ( var i = 0, il = cEvt.on.length; i < il; i++ ) { var name = cEvt.on[ i ]; cEvt.hndlr[ name ] = $( cEvt.element ).on( name, function( evt ) { return self.__eventHandler( evt, cEvt ); } ); } } }, __eventHandler: function( evt, cEvt ) { var self = this; if ( !cEvt.running ) { cEvt.running = true; window.requestAnimationFrame( function() { cEvt.method.call( self, evt ); cEvt.running = false; } ); } return ; } } ) )();