code: function(func) {
              this._deviceOrientationCallback = func;
              if (Crafty.support.deviceorientation) {
                  if (window.DeviceOrientationEvent) {
                      // Listen for the deviceorientation event and handle DeviceOrientationEvent object
                      Crafty.addEvent(
                          this,
                          window,
                          "deviceorientation",
                          this._normalizeDeviceOrientation
                      );
                  } else if (window.OrientationEvent) {
                      // Listen for the MozOrientation event and handle OrientationData object
                      Crafty.addEvent(
                          this,
                          window,
                          "MozOrientation",
                          this._normalizeDeviceOrientation
                      );
                  }
              }
          }
docs: @
  #Crafty.device.deviceOrientation
  @comp Crafty.device
  @kind Method
  
  @sign public Crafty.device.deviceOrientation(Function callback)
  @param callback - Callback method executed once as soon as device orientation is change
  
  Do something with normalized device orientation data:
  ~~~
  {
  tiltLR    :   'gamma -- the angle in degrees the device is tilted left-to-right.',
  tiltFB    :   'beta -- the angle in degrees the device is tilted front-to-back',
  dir       :   'alpha -- the direction the device is facing according to the compass',
  motUD     :   'The angle's values increase as you tilt the device to the right or towards you.'
  }
  ~~~
  
  @example
  ~~~
  // Get DeviceOrientation event normalized data.
  Crafty.device.deviceOrientation(function(data){
  Crafty.log('data.tiltLR : '+Math.round(data.tiltLR)+', data.tiltFB : '+Math.round(data.tiltFB)+', data.dir : '+Math.round(data.dir)+', data.motUD : '+data.motUD+'');
  });
  ~~~
  
  See browser support at http://caniuse.com/#search=device orientation.