Skip to content

Instantly share code, notes, and snippets.

@yeco
Created January 19, 2012 14:38
Show Gist options
  • Select an option

  • Save yeco/1640362 to your computer and use it in GitHub Desktop.

Select an option

Save yeco/1640362 to your computer and use it in GitHub Desktop.
Shake events handling on iOS
no need for plugin,
// Position Variables
           var x = 0;
           var y = 0;
           var z = 0;
           // Speed - Velocity
           var vx = 0;
           var vy = 0;
           var vz = 0;
           // Acceleration
           var ax = 0;
           var ay = 0;
           var az = 0;
           var ai = 0;
           var arAlpha = 0;
           var arBeta = 0;
           var arGamma = 0;
           var delay = 100;
           var alpha = 0;
           var beta = 0;
           var gamma = 0;
           if (window.DeviceMotionEvent==undefined) {
               document.getElementById("no").style.display="block";
               document.getElementById("yes").style.display="none";
           }
           else {
               window.ondevicemotion = function(event) {
                   ax = Math.round(Math.abs(event.accelerationIncludingGravity.x *
1));
                   ay = Math.round(Math.abs(event.accelerationIncludingGravity.y *
1));
                   az = Math.round(Math.abs(event.accelerationIncludingGravity.z *
1));
                   ai = Math.round(event.interval * 100) / 100;
                   rR = event.rotationRate;
                   if (rR != null) {
                       arAlpha = Math.round(rR.alpha);
                       arBeta = Math.round(rR.beta);
                       arGamma = Math.round(rR.gamma);
                   }
                   ax = Math.abs(event.acceleration.x * 1000);
                   ay = Math.abs(event.acceleration.y * 1000);
                   az = Math.abs(event.acceleration.z * 1000);
               }
               window.ondeviceorientation = function(event) {
                   alpha = Math.round(event.alpha);
                   beta = Math.round(event.beta);
                   gamma = Math.round(event.gamma);
               }
X
               function d2h(d) {return d.toString(16);}
               function h2d(h) {return parseInt(h,16);}
               setInterval(function() {
                   document.getElementById("xlabel").innerHTML = "X: " + ax;
                   document.getElementById("ylabel").innerHTML = "Y: " + ay;
                   document.getElementById("zlabel").innerHTML = "Z: " +
az;
                   document.getElementById("ilabel").innerHTML = "I: " +
ai;
                   document.getElementById("arAlphaLabel").innerHTML = "arA: " +
arAlpha;
                   document.getElementById("arBetaLabel").innerHTML = "arB: " +
arBeta;
                   document.getElementById("arGammaLabel").innerHTML = "arG: " +
arGamma;
                   document.getElementById("alphalabel").innerHTML = "Alpha: " +
alpha;
                   document.getElementById("betalabel").innerHTML = "Beta: " + beta;
                   document.getElementById("gammalabel").innerHTML = "Gamma: " +
gamma;
               }, delay);
           }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment