Essential Actionscript 3.0 - A Review

So, how do you go about creating a flash game? More than a year ago, I asked myself the same question. I started with a few online tutorials and an evaluation copy of Adobe's Flash tools. I found that the syntax was very similar to C++, a language that I feel at home with, and the ease with which I could get things running made me want to find out more. So, I decided I needed to pick up an introductory book that would teach me the basics. I found Essential ActionScript 3.0 by Colin Moock, and I'm glad that I did.

This is a fairly hefty book, with almost 1000 pages. As you might expect, to fill that amount of space requires a comprehensive look at most of the features that the language has to offer. I haven't read the book from cover to cover, but when I've needed information about a particular topic, or just wanted to browse the features of the language to work out the best way to implement certain features I've generally found it easy to find the information that I need somewhere in here.

The book comes with a worked example program that is slowly extended as language features are introduced. There are also instructions to build the code in Flash, using the Flex ide, and using the Flex command line tools. Both the Flash and Flex ide need to be licensed from Adobe, but the command line tools are free which is very useful if you don't want to invest too much money into your experiments with ActionScript. By the point that I got this book, I had already discovered FlashDevelop which is an open source ActionScript development environment. I would personally recommend FlashDevelop over any of the compilation options suggested in the book, but there are advantages and disadvantages to any solution.

The book provides a full introduction, not just to ActionsScript, but to programming in general. Because of this, I did find myself skipping through some early sections fairly quickly. Occasionaly, I'd have to go back to work out the syntax of some simple things but the index is good, and finding the right information is never difficult.

The book really comes into it's own when it moves onto some of the more complicated areas of flash programming, like the display api and event hierarchies. These systems are described in detail, from the ground up, making it easy to understand what's going on. This kind of depth is essential if you want to make the most of these features of the language, and it is this depth that is lacking from online tutorials. That doesn't mean that it will always be easy to find the bugs you've introduced into a particular implementation, but after reading this book you should at least know how the system is meant to work.

The only gripe I have with this book is that, despite its broad coverage of many aspects of the language, there are a couple of features of the language that don't get mentioned. This is understandable given the huge amount of material that could be covered, but from a personal perspective I would have preferred less detail in the introductory chapters in exchange for coverage of more features. There is no information about writing data to flash local storage, which seems like an odd thing to miss out. Storing data is a vital part of the utility of computers in general, even if it is not necessary for many flash applications. There is also no coverage of how to build resources into .swf files, which is not a general requirement for creating working programs but is an important feature of the language.

Overall I am very happy with Essential ActionScript 3.0 , and would recommend it as a solid introduction to the language.