package { import flash.display.Sprite; import flash.events.Event; [SWF(backgroundColor="#ffffff", frameRate="50", width="500", height="500")] public class MouseFollow extends Sprite { private var myCar:Truck; public function MouseFollow():void { myCar = new Truck(100, 50); myCar.x = 10; myCar.y = 10; addChild(myCar); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(e:Event):void { // calculate the x and y components of the displacement vector var dx:Number = stage.mouseX - myCar.x; var dy:Number = stage.mouseY - myCar.y; // calculate magnitude of displacement vector var dist:Number = Math.sqrt(dx*dx + dy*dy); // calculate angle of displacement vector var angle:Number = Math.atan2(dy, dx); // calculate the force, based on distance var force:Number = dist / 100; // calculate x and y components of force, add them to velocity var fx:Number = Math.cos(angle) * force; var fy:Number = Math.sin(angle) * force; // update car myCar.vx += fx; myCar.vy += fy; myCar.vx *= .90; myCar.vy *= .90; myCar.update(); } } }