Essential ActionScript 3.0
Home Tutorials Reviews Weblog

Review: Essential ActionScript 3 by Colin Moock, O'Reilly Press $55
Feature: Just one of the Missing Manuals for Adobe's Actionscript 3

Adobe is taking an enormous chance with its ActionScript 3. This is the JavaScript 2 variant that is the driving engine for Adobe's brand new and ambitious Flash CS3, Flex 3, and Apollo/AIR product lines. These products are in turn the key components along with the Adobe Enterprise Lifecycle Development tools ( the Adobe PDF development system) to Adobe's thrust into RAIA-Rich Anywhere Interface Applications. RAIA in turn is the last frontier in presentations or screen display side of development that will finally along with Web Services and Messaging technologies, deliver Information at Your FingerTips.

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.

Adobe Documentation of ActionScript 3

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.

I wish I could say the same for ActionScript 3.

Lets look at what documentation is available for ActionScript 3 in the key Adobe tools:
Adobe Flash CS3:
Adobe Flash CS3 Professional User Guide - 55 pages of 750 page printed manual
Adobe Flash CS3 Help File - another 55 pages of Help
Adobe Flash CS3 Web links - 5 different Web links of varying value. Here is a typical link.

Adobe Flex 2 and Flex 3 including FlexBuilder UI Development tool
Adobe Flex 2 Getting Started Guide - about 20 pages of 252 printed manual pages
Adobe Flex 2 and Flex 3 Help Files - about 250 web pages on ActionScript 3 as self described here:
"This manual familiarizes you with the concepts behind the ActionScript 3.0 programming language and gives you implementation details and samples illustrating important language features. However, this manual is not a complete language reference."
Adobe Flex 2 Web Links -2 new and 1 old link to Adobe Web resources
Best local documentation on ActionScript 3

Adobe Apollo/AIR
No printed documentation
Minimal electronic documentation on ActionScript 3
Web links to same Flex and ActionScript online resources.

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.

Next, as a developer I have to be more selective then ever before on the languages and tools that I am going to learn. Example, I am doing a Web project involving the following elements: PHP, Flash, complex multi-database SQL, AJAX including advanced CSS and JavaScript, old ASP and Access code, Java JMS and SOAP based Web Services. Now I don't have to know everyone of these technologies cold but I am expected know the base technologies (PHP, Flash, SQL, AJAX) well enough to code competently in each. Everyone of these core technologies has changed dramatically in the past 3 years. Therefore I am going to be very parsimonious and careful in what languages and APIs I decide to "keep on top of". ActionScript 3, is one of the languages on the cusp of being personally supported and learned for the following reason.

ActionScript 3 is major departure from ActionScript 1 and 2 because it uses full JavaScript 2 syntax and semantics as its base. And JavaScript 2 is a major change from the current Web 2.0 darling, JavaScript 1.4. Cosmetically, the definition of datatypes takes a dramatic departure in from JavaScript 1.4/ActionScript 2 to JavaScript 2/ActionScript 3. But more fundamentally, with the introduction of package, namespaces, public and internal variables, new constructor and method definitions and invocations; the object oriented fundamentals of ActionScript from version 2 to version 3 is major and does require a substantial learning effort. Yet ActionScript 3 is critical to all of Adobe's Flash-based tools. Hence the importance of the decision.

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

easWell 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.


Top of Page  Home  Tutorials  Developers Weblog  Graphics Reviews and Tips