code: def start_event(self, event_type, *args, dt=1/60):
          
          # Don't bother scheduling a timer if nobody's listening.  This isn't 
          # great from a general-purpose perspective, because a long-lived event 
          # could have listeners attach and detach in the middle.  But I don't 
          # like the idea of making a bunch of clocks to spit out a bunch of 
          # events that are never used, although to be fair I don't actually know 
          # how expensive that would be.  If I want to make this implementation 
          # more general purpose, I could start and stop timers as necessary in 
          # the methods that add or remove handlers.
          if not any(self.__yield_handlers(event_type)):
              return
  
          def on_time_interval(dt): #
              self.dispatch_event(event_type, *args, dt)
  
          pyglet.clock.schedule_interval(on_time_interval, dt)
          self.__timers[event_type] = on_time_interval
docs: Begin dispatching the given event at the given frequency.
  
          Calling this method will cause an event of type *event_type* with 
          arguments *args* to be dispatched every *dt* seconds.  This will 
          continue until `stop_event()` is called for the same event.
  
          These continuously firing events are useful if, for example, you want 
          to make a button that scrolls for as long as it's being held.