package { import flash.display.MovieClip; import flash.events.Event; import flash.utils.getTimer; public class CorrectSpeed extends MovieClip { private var speed:Number; var lastTime:Number; public function CorrectSpeed() { super(); addEventListener(Event.ADDED_TO_STAGE, onStage); } private function onStage(e:Event):void { speed = stage.stageWidth * .25; // pixels per second -- 4 seconds to cross stage lastTime = getTimer(); removeEventListener(Event.ADDED_TO_STAGE, onStage); addEventListener(Event.ENTER_FRAME, onFrame); } private function onFrame(e:Event):void { var time:Number = getElapsedSec(); var distance:Number = speed * time; x += distance; if (x > (stage.stageWidth + width)) { x -= (stage.stageWidth + width + width); } } private function getElapsedSec():Number { var thisTime = getTimer(); var seconds:Number = (thisTime - lastTime) / 1000.0; lastTime = thisTime; return seconds; } } }