Orientation.js 1006 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. (function(){
  2. var Orientation = Quark.Orientation =
  3. {
  4. lastGamma: 0,
  5. lastBeta: 0,
  6. lastAlpha: 0,
  7. callback: null
  8. };
  9. Orientation.register = function(callback)
  10. {
  11. var me = this, handler = function(e){me.onOrientation(e, callback);};
  12. //window.addEventListener('deviceorientation', handler, false);
  13. //window.addEventListener('MozOrientation', handler, false);
  14. window.addEventListener('devicemotion', handler, false);
  15. };
  16. Orientation.onOrientation = function(e, callback)
  17. {
  18. var gamma = e.gamma, beta = e.beta, alpha = e.alpha;
  19. if(!gamma && !beta)
  20. {
  21. gamma = e.x * Quark.RADIAN;
  22. beta = e.y * Quark.RADIAN;
  23. alpha = e.z * Quark.RADIAN;
  24. }
  25. var data = {gamma:gamma, beta:beta, alpha:alpha};
  26. if(e.accelerationIncludingGravity)
  27. {
  28. data.accelerationX = e.accelerationIncludingGravity.x;
  29. data.accelerationY = e.accelerationIncludingGravity.y;
  30. data.accelerationZ = e.accelerationIncludingGravity.z;
  31. }
  32. if(callback != null) callback(data);
  33. this.lastData = data;
  34. };
  35. })();