Ignoring your book question, since that is answered elsewhere...
Game Programming is event based? with a timer? An outer-infinite loop?
Typically the latter is the case, that you have an "outer-infinite loop", or game loop, which repeatedly updates the game state and renders to the screen.
However, in Flash, I believe they use a timer to simulate this game loop; a function is called repeatedly, and that function should update the state of your game. You don't need to redraw the entire screen in Flash, but instead you move entities and change keyframes and things like that, using ActionScript. The Flash plugin handles drawing things.
The only games that would be event-based would be perhaps puzzle games or card games. For example, Solitaire would not require a game loop rendering the screen at 60 FPS; it can just react to user input actions and draw when necessary.
Flash affords other features you can take advantage of; for example, its timeline nature means that you can implement different game screens as keyframes on the timeline (game screens being the different states of your game - main menu, game, pause screen, credits,...).
It's good that you're aiming for 2D. Flash doesn't really do 3D, and it is indeed an added level of complexity that you shouldn't have to deal with until you are clear about the game loop and other important game programming basics.