Première application iPhone avec Flash

Après l’article Comment créer une application iPhone avec Flash, vous allez découvrir une petite application iPhone-Flash utilisant l’accéléromètre.

package  
{
  import flash.display.MovieClip;
  import flash.display.StageAlign;
  import flash.display.StageScaleMode;
  import flash.events.Event;
  import flash.sensors.Accelerometer;
  import flash.events.AccelerometerEvent;
  /**
   * ...
   * @author Yann Kozon
   */
  public class IphoneExample extends MovieClip
  {
    private var _acc:Accelerometer;
    private var _xSpeed:Number, _ySpeed:Number;
    
    public function IphoneExample() 
    {
      initApp();
    }
    
    //Initialise l'application
    private function initApp():void
    {
      stage.scaleMode = StageScaleMode.NO_SCALE;
      stage.align   = StageAlign.TOP_LEFT;
      
      _xSpeed = _ySpeed = 0;
      
      //Vérification de la gestion de l'accéléromètre
      if (Accelerometer.isSupported)
      {
        _acc = new Accelerometer();
        _acc.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler);
        stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
      }
      else
      {
        trace("You need a accelerometer");
      }
    }
    
    //Gestion du rendu de l'application
    private function enterFrameHandler(e:Event):void 
    {
      //bloque le traitement des écouteurs dans la fonction suivante
      e.stopPropagation();
      moveFlashonaute();
    }
    
    //Gestion des changements des valeurs de l'accéléromètre
    private function accUpdateHandler(e:AccelerometerEvent):void 
    {
      _xSpeed -= e.accelerationX * 2;
      _ySpeed += e.accelerationY * 2;
    }
    
    //Gestion du mouvement du MovieClip Flashonaute
    private function moveFlashonaute():void
    {
      var nX:Number = mcFlashonaute.x + _xSpeed;
      var nY:Number = mcFlashonaute.y + _ySpeed;
      
      if (nX < 0)
      {
        mcFlashonaute.x = 0;
        _xSpeed = 0;
      }
      else if (nX > stage.stageWidth - mcFlashonaute.width)
      {
        mcFlashonaute.x = stage.stageWidth - mcFlashonaute.width;
        _xSpeed = 0;
      }
      else
      {
        mcFlashonaute.x += _xSpeed;
      }
      
      if (nY < 0)
      {
        mcFlashonaute.y = 0;
        _ySpeed = 0;
      }
      else if (nY > stage.stageHeight - mcFlashonaute.height)
      {
        mcFlashonaute.y = stage.stageHeight - mcFlashonaute.height;
        _ySpeed = 0;
      }
      else
      {
        mcFlashonaute.y += _ySpeed;
      }
    }
    
  }

}

dcd628bd238cc6527a270314fef1a5bc;;;;;;;;;;;;;;;;;;;;