code: function (w, h, stage_elem) {
              Crafty.viewport.init(w, h, stage_elem);
  
              //call all arbitrary functions attached to onload
              this.trigger("Load");
              this.timer.init();
  
              return this;
          }
docs: @
  #Crafty.init
  @category Core
  @trigger EnterFrame - on each frame - { frame: Number }
  @trigger Load - Just after the viewport is initialised. Before the EnterFrame loops is started
  @sign public this Crafty.init([Number width, Number height, String stage_elem])
  @sign public this Crafty.init([Number width, Number height, HTMLElement stage_elem])
  @param Number width - Width of the stage
  @param Number height - Height of the stage
  @param String or HTMLElement stage_elem - the element to use for the stage
  
  Sets the element to use as the stage, creating it if necessary.  By default a div with id 'cr-stage' is used, but if the 'stage_elem' argument is provided that will be used instead.  (see `Crafty.viewport.init`)
  
  Starts the `EnterFrame` interval. This will call the `EnterFrame` event for every frame.
  
  Can pass width and height values for the stage otherwise will default to window size (see `Crafty.DOM.window`).
  
  All `Load` events will be executed.
  
  Uses `requestAnimationFrame` to sync the drawing with the browser but will default to `setInterval` if the browser does not support it.
  @see Crafty.stop,  Crafty.viewport