Now, you must still ensure that shootDelay is decreased once per frame/update if it is larger than 0, otherwise you would never be able to fire again. You can either call an update() method each frame, or subscribe to the ENTER_FRAME event and do your update in the corresponding event listener. A simple update() method would look like this: