package { import flash.display.*; import flash.events.*; import flash.utils.getTimer; public class Bullet extends MovieClip { private var dy:Number; private var lastTime:int; // function Bullet positions bullet & adds listener calling moveBullet function public function Bullet(x,y:Number, speed: Number) { this.x = x; this.y = y; dy = speed; lastTime = getTimer(); addEventListener(Event.ENTER_FRAME,moveBullet); } // function moveBullet moves bullet until a condition is met which then calls deleteBullet function public function moveBullet(event:Event) { var timePassed:int = getTimer()-lastTime; lastTime += timePassed; this.y += dy*timePassed/1000; if (this.y < 0) { deleteBullet(); } } // function deleteBullet removes bullet & listener calling moveBullet function public function deleteBullet() { MovieClip(parent).removeBullet(this); parent.removeChild(this); removeEventListener(Event.ENTER_FRAME,moveBullet); } } }