Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox
ARTICLE EN TRAVAUX

AIR pour Android : Utilisation des accéléromètres : Détecter l'inclinaison et les accélérations du téléphone

Compatible AIR 2. Cliquer pour en savoir plus sur les compatibilités.Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.Compatible Flash CS5. Cliquer pour en savoir plus sur les compatibilités.Par joni (Joni), le 28 août 2011

Une des fonctionnalités d’AIR pour Android est l’accès aux accéléromètres du téléphone.

Un accéléromètre est un dispositif permettant à la fois de connaitre l'inclinaison de l'appareil sur 2 ou 3 axes (bien qu'étant moins précis qu'un gyroscope) mais également la force avec laquelle l'appareil est déplacé dans l'espace également sur 2 ou 3 axes. Pour plus de détails sur les accéléromètres, je vous conseille cet article de Wikipedia.

Nous allons voir dans ce tutoriel comment utiliser les accéléromètres pour déplacer un objet sur la scène.

Pour commencer, créez un nouveau fichier AIR pour Android. Si vous ne savez pas comment faire, vous pouvez suivre ce tutoriel.

Réalisation du tutoriel

Afin de réaliser notre application, nous allons utiliser principalement la classe Accelerometer du nouveau package flash.sensors

Pour commencer, nous allons déclarer une nouvelle fonction dans laquelle nous allons initialiser nos accéléromètres :

function AccelerometerTest()
{
      //Nous devons d'abord vérifier que les accéléromètres sont disponibles sur l'appareil
      if (Accelerometer.isSupported)
      {
          //Si les accéléromètres sont disponibles, on peut créer notre objet qui les gérera
          //On déclare un nouvel objet de la classe Accelerometer
          accelerometer = new Accelerometer();
          //On écoute l'évenement AccelerometerEvent.UPDATE pour savoir quand un changement survient dans les valeurs d'inclinaison
          accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler);
          //On ajoute un écouteur sur l'ENTER_FRAME afin de manipuler notre objet
          stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
      }
      else
      {
          //Vous pouvez afficher ici un message d'erreur ou quitter l'application
      }
}
 
function enterFrameHandler(event:Event):void
{
 
}
 
function accUpdateHandler(event:AccelerometerEvent):void
{
 
}

Notez que l’évènement AccelerometerEvent.UPDATE n'est appelé que lorsqu'un changment est détecté dans les valeurs d'accélérations linéaires. C'est pourquoi nous déplacerons l'objet dans un écouteur d'ENTER_FRAME et non dans cet écouteur.

Nous allons maintenant nous occuper du contenu de la fonction accUpdateHandler.

Mais avant, nous allons déclarer les variables

Conclusion

En savoir plus