|Essential ActionScript 3.0|
Review: Essential ActionScript 3 by Colin Moock, O'Reilly Press $55
Yes, the long promised Information at your Fingertips is finally arriving in the form of the 6A's- Anytime, Anywhere, on Any device Access to Information for Anyone Authorized. Look at what Web 2.0 is delivering - desktop GUI ease of use and responsiveness for Web pages. Look at what Flash and Java are delivering - apps that can run in a browser or on the desktop using nearly identically the same coding. Look what Web 2.0 apps are being driven towards - offline as well as online operations so that when a user is no longer connected to the Internet they still can do productive work or play that team game locally and hone their skills. And look what development tools as diverse as Adobe's AIR, GoogleGears+GWT, and Nexaweb are delivering: apps that can run on multi-platforms, multi-OS using the same code - Java's write once run anywhere brought to the world of GUI and display.
This is indeed the Bill Gates goal of Information at your Fingertips but the front runners in delivering the 6A's of RAIA are not from Redmond. Rather Sun's Java, Adobe's ActionScripting technologies and a few start-ups have a commanding lead in delivering the one GUI API: one codebase for all displays, all OS platform, online or offline operation. So given the pivotal role of ActionScript, and its latest version ActionScript 3 to Adobe, lets look at the ActionScript 3 documentation.
I used to wonder how Adobe Photoshop could beat Corel Draw with PhotoPaint, a clearly better function and value proposition in the late 1990s. Well while Corel had its glitzy annual show pouring millions of dollars into a weekend affair, Adobe poured millions into its own and third party documentation of Photoshop. Photoshop documentation was always complete, comprehensive and professional. Now of course, that was not the only factor - Adobe Photoshop delivered in just about each new version some stunning new features for which Corel soon got into the position of playing catchup on. Topnotch documentation by Adobe and dozens of writers on PhotoShop was a distinct competitive advantage for Adobe in the graphics marketplace.
Lets look at what documentation is available for ActionScript 3 in the key Adobe tools:
In summary, there is little printed documentation on ActionScript 3, some scattered Help file documentation with Flex 2 and Flex 3 Help files having the best getting started guide to ActionScript 3. But a comprehensive reference with lots of examples and neat how tos has to be confined to the Missing Manuals file. Now given the pivotal importance of ActionScript 3 to Adobe, this is a curious abandonment of the Adobe Photoshop documentation legacy.
Why ActionScript 3 is Vital
During the past ten years of Flash development there have been 9 Flash Players and about 6-7 distinct versions of ActionScript. The early versions added more Objects and functions, but ActionScript 1 to 3 have made changes in the underlying syntax as well as semantics of the language. That is a lot of change over a ten year period. So good and readily accessible documentation on ActionScript 3 is vital because there has been so much change to the language, especially in the last two versions.
Despite its importance, Adobe seems to be departing from its Photoshop high standards of documentation, and is either woefully short as in the printed documentation (and even local electronic as well) for all the Flash tools or scattered and hidden with online-only documentation smeared all over Adobe, Adobe labs and various Adobe blogs and wikis. For such an important piece of software to Adobe, this is very unfortunate.
Colin Moock and 3rd Parties to The Rescue
Well finally I get down to Essential ActionScript 3. Colin Moock has already written some of the definitive books on ActionScript and Flash development - so this edition has great pedigree. And once again, Colin does not fail to deliver. This book is the ultimate Missing ActionScript 3 Reference Manual. Over 900 pages, Colin builds up the first the programming case for the move to ActionScript 3's new object syntax. He uses a highly conceptual Virtual Zoo model (I must confess on my new Java tips I am using the same "thought experiment" approach) that really emphasizes the new ActionScript OO approach.
Then Colin covers the detailed syntax and semantics of ActionScript 3. Everything is covered: static variable and methods, functions with inheritance, new datatypes and type checking, interfaces(in Java OO sense), statements and operators, events and event handling, exceptions and error handling, garbage collection, scope and namespaces, XML and E4X, plus Flash Player and security restrictions. And that is just the first half of the book chock full of O'Reilly quality tips, traps, tables, and examples. The only complaint - Virtual Zoo(just like my own Java tips - note to self, make some changes) dominates the first 1/2 of the coding examples.
But there is a strong logic to the sequence of topics that carries the narrative along. However, users wanting quick one chapter reference material will find that each one is reasonably standalone. I am constantly flitting between the Flex 2 Help file on ActionScript 3 and Essential ActionScript 3. More often than not it is Colin to the rescue on some of the details and design ideas behind ActionScript 3.
Nowhere is this more obvious and important than in the second half of the book. Its in these chapters on ActionScript's support for display and interactivity, that Colin introduces more development oriented topics and tasks such as Events and Display Hierarchies, Programming Animation, and Drawing with Vectors. These are 3 of the 9 chapters on using ActionScript 3 in specific display and development contexts. Excellent tutorials and exercises.
What Flex and some AIR developers will find missing is detailed documentation on how to develop with these tools. There are short start guides but no in depth coverage. Clearly, Colin comes from the Flash and animation design side of ActionScript. Also Colin has taken a pass on the database, Web Services, and Messaging/Remote capabilities that are possible through ActionScript 3.
But these omissions are more than made up for by clarity of argument exposition on all the language element and object design purposes behind ActionScript 3. This book is so good and so needed for Flash CS3 and Flex Builder - Adobe should consider including a half-price discount voucher on the book when people register their products. In the meantime, I continue to look for a ActionScript Coding Book with scores of example codings and some larger projects that tackle the Flex and AIR database plus messaging side of the ActionScript story . I have checked Barnes and Noble and there are plenty of new books coming out on this side and I will try to keep readers up to date on some of the best. They appear to be good - and like Colin's Essential ActionScript 3, rescuing Adobe's documentation teams.