code: function Controls(opts) {
    opts = opts || {};
  
    this._methods = {};
    this._methodGroups = {};
    this._composer = new Composer();
  
    // Whether the controls are enabled.
    this._enabled = (opts && opts.enabled) ? !!opts.enabled : true;
  
    // How many control methods are enabled and in the active state.
    this._activeCount = 0;
  
    this.updatedViews_ = [];
  
    this._attachedRenderLoop = null;
  }
docs: @class Controls
  @classdesc
  
  Set of controls which affect a view (e.g. keyboard, touch)
  
  {@link ControlMethod} instances can be registered on this class. The methods
  are then combined to calculate the final parameters to change the {@link View}.
  
  Controls is attached to a {@link RenderLoop}. Currently it affects the
  {@link view} of all {@link Layer} on the {@link Stage} of the
  {@link RenderLoop} it is attached to. A more flexible API may be provided
  in the future.
  
  The ControlMethod instances are registered with an id and may be enabled,
  disabled and unregistered using that id. The whole Control can also be
  enabled or disabled.