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; } } } }

