Depuis la disponibilité du Flash Player 10.1 et de AIR 2.0, nous pouvons accéder à l'accéléromètre.

Plusieurs jeux et applications, principalement sur téléphone mobile l'utilise déjà depuis un certain temps.

Voici comment l'utiliser.

 

La classe Accelerometer se trouve dans le package flash.sensors :

 

import flash.sensors.Accelerometer;
import flash.events.AccelerometerEvent;

 

La classe Accelerometer fournie une variable permettant de déterminer si la fonction est prise en charge par l'appareil, ce qui permet, dans le cas contraire, ajouter un controle différent (clavier par exemple).

 

if (Accelerometer.isSupported)
    trace('Accelerometer supported');
else
    trace('Accelerometer not supported');

 

On ajoute maintenant un écouteur pour nous permettre de détecter les mouvements de celui-ci :

 

var acc : Accelerometer = new Accelerometer();
acc.addEventListener(AccelerometerEvent.UPDATE, onAccUpdate);

 

A partir de cet évènement, nous pouvons récupérer les valeurs d'accélération sur tous les axes :

  • accelerationX
  • accelerationY
  • accelerationZ

 

private function onAccUpdate(pEvt:AccelerometerEvent):void
{    
    trace('x: ' + pEvt.accelerationX );
    trace('y: ' + pEvt.accelerationY );
    trace('z: ' + pEvt.accelerationZ );
}

 

Chacune des valeurs étant exprimées en Gs (1G correspondant à peu pret à 2.8m / sec / sec).

 

Il est également possible de modifier l'intervalle de rafraichissement de l'accéléromètre via la méthode setRequestedUpdateInterval qui prend comme paramètre un réél représentant cet intervalle, exprimé en milliseconde. Si cette fonction n'est pas appelée, la classe Accelerometer prendra par défaut la valeur de l'intervalle de l'appareil.