Title: Advanced ActionScript 3 with Design Patterns
Authors: Joey Lot and Danny Patterson
Published by: Peachpit Press (Adobe Press), 2006
Level: Advanced
Pages: Under 300


9/10, or 4.5 stars.

A strong, yet small book which provides a solid introduction to best practices in general, not just Design Patterns. Recommended for anyone who considers themselves an ActionScript coding professional, or aspires to become one one.


  • Assumes very little about existing Software Engineering knowledge;
  • Concise yet thorough descriptions of complex topics;
  • Practical worked examples of techniques discussed;
  • Remains interesting, which is sometimes a challenge for such theoretical concepts;
  • Not a bible.


  • Not a bible;
  • Some quirks.


Setting the scene

OK, before I begin, first I have to declare an interest. I have a Software Engineering degree. That means my mind has been corrupted with the virtues of best practices for years on end, and I was likely to give any book which brought them to the forefront of the ActionScript community's collective mind a pretty good review.

However, I think I have counter-set that terrible brainwashing with a few good years in industry where I learned one all important lesson; best practices are really useful… except, they are only useful when the project warrants their use, and when used to the extent necessary. I was happy to see that this little lesson is one of the first topics discussed in this book. But we're getting ahead of ourselves.

Advanced ActionScript 3 with Design Patterns (henceforth AA3WDP) is not just about Design Patterns, it's about best practices software engineering, with a focus on Design Patterns and their application in the world of ActionScript. Design Patterns, put simply, are theoretical frameworks for solving common coding problems in a smart way (no nasty hacks). They can be transported across languages, and that's exactly what this book does; provides you with examples of how to implement, in ActionScript, some of the world's best practice Design Patterns for various scenarios; e.g. developing an interactive online Rich Internet Application with the MVC pattern.

But it does much more than that. To begin with, Chapter 1 rocks the foundations of so many ActionScripters' lives, by raising the all-important difference between the analysis, design and development phases of building an application.

Most of the time when you have a project to do in ActionScript, you jump straight into coding, don't you? Admit it! I saw the look in your eyes! Of course, this is fine for a lot of projects, because they are not complex enough to warrant anything more. But what about when you get that new job with a big ActionScript development firm in the city? Or when you want to start working as one of a team of developers in the open-source community, pumping out a great new… something? You're going to need to be able to break the work down into bite-sized pieces for allocation. You're going to have to build your pieces to a specification and meet it to the letter; otherwise the whole project will fall to bits. And your code is going to have to be good; really good.

The rigor which comes as par for the course in a lot of programming languages has never really been a strong suit of the ActionScript community. And I'm not saying that's a bad thing. Look at half the stuff I've written and I'm sure you could poke a million holes in it; but it still works. Still, in real terms, ActionScript and the Flash platform have come a long way in a few short years, and harder nosed software engineering professionals are entering the scene. Want to keep up with Mr. Jones?

Believe it or not, this is the ActionScript world we live in. And it needs Best practices.