main/leap-plugins-0.1.12.js
function (options) {
      var player = this;

      // otherwise, the animation loop may try and play non-existant frames:
      this.pause();

      // this is called on the context of the recording
      var loadComplete = function (frames) {

        this.setFrames(frames);

        if (player.recording != this){
          console.log('recordings changed during load');
          return
        }

        if (player.autoPlay) {
          player.play();
          if (player.pauseOnHand && !player.controller.streaming() ) {
            player.setGraphic('connect');
          }
        }

        player.controller.emit('playback.recordingSet', this);
      };

      this.recording = options;

      // Here we turn the existing argument in to a recording
      // this allows frames to be added to the existing object via ajax
      // saving ajax requests
      if (!(options instanceof Recording)){

        this.recording.__proto__ = Recording.prototype;
        Recording.call(this.recording, {
          timeBetweenLoops: this.options.timeBetweenLoops,
          loop:             this.options.loop,
          loadProgress: function(recording, percentage, oEvent){
            player.controller.emit('playback.ajax:progress', recording, percentage, oEvent);
          }
        });

      }


      if ( this.recording.loaded() ) {

        loadComplete.call(this.recording, this.recording.frameData);

      } else if (options.url) {

        this.controller.emit('playback.ajax:begin', this, this.recording);

        // called in the context of the recording
        this.recording.loadFrameData(function(frames){
          loadComplete.call(this, frames);
          player.controller.emit('playback.ajax:complete', player, this);
        });

      } else if (options.compressedRecording) {
        this.recording.loadCompressedRecording(options.compressedRecording, function(frames){
          loadComplete.call(this, frames);
        });
      }


      return this;
    }
function (options) {
      var player = this;

      // otherwise, the animation loop may try and play non-existant frames:
      this.pause();

      // this is called on the context of the recording
      var loadComplete = function (frames) {

        this.setFrames(frames);

        if (player.recording != this){
          console.log('recordings changed during load');
          return
        }

        if (player.autoPlay) {
          player.play();
          if (player.pauseOnHand && !player.controller.streaming() ) {
            player.setGraphic('connect');
          }
        }

        player.controller.emit('playback.recordingSet', this);
      };

      this.recording = options;

      // Here we turn the existing argument in to a recording
      // this allows frames to be added to the existing object via ajax
      // saving ajax requests
      if (!(options instanceof Recording)){

        this.recording.__proto__ = Recording.prototype;
        Recording.call(this.recording, {
          timeBetweenLoops: this.options.timeBetweenLoops,
          loop:             this.options.loop,
          loadProgress: function(recording, percentage, oEvent){
            player.controller.emit('playback.ajax:progress', recording, percentage, oEvent);
          }
        });

      }


      if ( this.recording.loaded() ) {

        loadComplete.call(this.recording, this.recording.frameData);

      } else if (options.url) {

        this.controller.emit('playback.ajax:begin', this, this.recording);

        // called in the context of the recording
        this.recording.loadFrameData(function(frames){
          loadComplete.call(this, frames);
          player.controller.emit('playback.ajax:complete', player, this);
        });

      } else if (options.compressedRecording) {
        this.recording.loadCompressedRecording(options.compressedRecording, function(frames){
          loadComplete.call(this, frames);
        });
      }


      return this;
    }
function ( options ) { var player = this ; // otherwise, the animation loop may try and play non-existant frames: this . pause ( ) ; // this is called on the context of the recording var loadComplete = function ( frames ) { this . setFrames ( frames ) ; if ( player . recording != this ) { console . log ( 'recordings changed during load' ) ; return } if ( player . autoPlay ) { player . play ( ) ; if ( player . pauseOnHand && ! player . controller . streaming ( ) ) { player . setGraphic ( 'connect' ) ; } } player . controller . emit ( 'playback.recordingSet' , this ) ; } ; this . recording = options ; // Here we turn the existing argument in to a recording // this allows frames to be added to the existing object via ajax // saving ajax requests if ( ! ( options instanceof Recording ) ) { this . recording . __proto__ = Recording . prototype ; Recording . call ( this . recording , { timeBetweenLoops : this . options . timeBetweenLoops , loop : this . options . loop , loadProgress : function ( recording , percentage , oEvent ) { player . controller . emit ( 'playback.ajax:progress' , recording , percentage , oEvent ) ; } } ) ; } if ( this . recording . loaded ( ) ) { loadComplete . call ( this . recording , this . recording . frameData ) ; } else if ( options . url ) { this . controller . emit ( 'playback.ajax:begin' , this , this . recording ) ; // called in the context of the recording this . recording . loadFrameData ( function ( frames ) { loadComplete . call ( this , frames ) ; player . controller . emit ( 'playback.ajax:complete' , player , this ) ; } ) ; } else if ( options . compressedRecording ) { this . recording . loadCompressedRecording ( options . compressedRecording , function ( frames ) { loadComplete . call ( this , frames ) ; } ) ; } return this ; }
Accepts a hash with any of URL, recording, metadata, compressedRecording once loaded, the recording is immediately activated
Accepts a hash with any of URL recording metadata compressedRecording once loaded the recording is immediately activated