var speed:uint=5; var mx var my var angle=0 var hero; stage.addEventListener(MouseEvent.MOUSE_DOWN,onmousedown); function onmousedown(e:MouseEvent):void{ mx=mouseX; my=mouseY hero.addEventListener(Event.ENTER_FRAME,onenterframe); } function onenterframe(e:Event):void{ hero=e.target as Sprite; angle = Math.atan2(my-hero.y, mx-hero.x); if(hero.x!=mx){ if(Math.abs(mx-hero.x)>Math.abs(speed*Math.cos(angle))){ hero.x+=speed*Math.cos(angle); } } if(hero.y!=my){ if(Math.abs(my-hero.y)>Math.abs(speed*Math.sin(angle))){ hero.y+=speed*Math.sin(angle); } } if (mx == hero.x && my == hero.y) { hero.removeEventListener(Event.ENTER_FRAME,onenterframe); } }