A scant eighteen months have passed since I penned the Foreword for the first edition of ActionScript: The Definitive Guide. Since that time, the first edition has established itself as the essential guide to ActionScript programming. It's become so indispensable to so many developers that it seems as if it has existed for a much longer time.
Flash MX, which shipped in March 2002, was the most ambitious release of Flash to date. The team of talented individuals that contributed to its creation was larger than ever, and we delivered over 100 major new features. ActionScript was a key focus, which required a change in the way it was developed. Prior to Flash MX, ActionScript was developed by a handful of individuals, including myself. In MX, our ambitious ActionScript agenda required many engineers. With the additional resources, we were able to deliver a vastly improved script editor and debugger, optimize performance, and add a plethora of new APIs providing new capabilities for ActionScript programmers.
There is a great deal of excitement about Flash at Macromedia today. While the public may think of Flash as simply an animation tool, the Flash developer community is beginning to recognize that Flash is something broader. With Flash MX, web developers now have the means to deliver rich, interactive user experiences over the Web—not only the traditional uses of Flash, such as cartoons and motion graphics, but also sophisticated web applications.
Flash always has been, and seems destined to remain, the best way to give your web site some pizzazz, but serious web application developers are straining against the limitations of HTML. They are searching for a new platform that offers more attractive, engaging, and usable experiences to their users—a rich client — and they are finding Flash to be an ideal delivery vehicle. Flash's cross-platform consistency and ubiquitous distribution base offer a runtime technology upon which developers can build a new breed of web applications that are more interesting and nimble than those that existed previously. I'd wager that you'll be seeing a broad spectrum of new uses for Flash, from multiplayer games to e-commerce to data visualization. And Macromedia is committed to ensuring that Flash keeps up with the new demands placed on it by application developers. ActionScript plays an important role in this new vision for Flash MX. Because the usefulness of the Flash platform depends on the power of its scripting language, we set out to make ActionScript powerful enough to satisfy even the most ambitious web developer.
This initiative to make Flash a true application platform posed special challenges for developing Flash MX. Flash is, in a sense, a product being pulled in many directions at once, as it addresses the needs of many different customers, from character animation to motion graphics to the growing field of rich application development. Scripting enhancements were seen as critical, but we realized that it was equally important to enhance Flash's abilities for creative expression, because visual artistry is the heart and soul of Flash.
To ensure that we fulfilled the varied needs of our customers, we divided the Flash engineering team into three groups, each with its own mandate:
Provide an excellent initial experience for new users
Enhance Flash's abilities of creative expression
Beef up ActionScript into a powerful tool for developing complex applications
I was delighted to lead the Power team, which went about enhancing ActionScript to support the notion of "Flash as a platform." We revised and enhanced Flash's object and event models; we refined Flash 5 Smart Clips into a more robust component architecture; and we rewrote frequently used ActionScript objects to optimize performance. In addition, we added power tools for developers, such as Code Hints and the revamped Debugger.
We weren't the only ones working on ActionScript, however. The union of Macromedia and Allaire in 2001 brought the company formidable server expertise. The folks at the new Macromedia office in Newton, Massachusetts built Macromedia Flash Remoting MX (Flash Remoting), a new server-side technology permitting direct and easy-to-use communication with the back end. The all-stars on the Macromedia Flash Communication Server MX (Comm Server) team pushed the envelope on what can be done with ActionScript, introducing new ActionScript APIs (including ServerSide ActionScript) that enable truly trailblazing functionality: live two-way communications and collaboration over the Internet!
Another entire team was dedicated to the task of building components. The Components Team—of which two members served as technical editors for this book—built UI components that enable the quick construction of HTML-like forms, and additional controls that go beyond what is possible with HTML, such as a full-blown tree control, calendar control, and a data grid. Combined with Flash Remoting, the components are a formidable force for building data-driven applications.
The components in Flash MX offer a potent taste of the future: high-level abstractions that can quickly be assembled into interactive content and applications. At Macromedia, we will seek to make the construction and usage of components easier and even more powerful in future releases of Flash. The components offered with Comm Server are a great example of that power. Even without components, using Comm Server, it is relatively easy to build a videoconferencing application in only a few lines of ActionScript. Comm Server components make it even easier; by simply dragging a few components, novices can effectively script without using ActionScript. This is the direction we're interested in, because it helps novice users become productive immediately. Rest assured that as ActionScript and Flash become more approachable, greater possibilities will open up for advanced developers. By taking care of the mundane plumbing and commonly used UI components, we enable expert users and programmers to be even more productive. Flash MX's enhanced object model and component architecture allows skilled developers to extend existing components or develop their own custom libraries. So, whereas this book doesn't cover the existing components in detail, it offers advanced and aspiring developers the tools to create their own. It is always exciting to see the new directions developers take ActionScript once they have the tools and an understanding of how to use them.
Therefore, this second edition is unquestionably the essential book for ActionScript programming in Flash MX. It has proven invaluable even for the engineers on the Macromedia Flash team, who see it as complementary to our own product documentation. This book is the product of Colin Moock's boundless talent and energy, which have driven him to delve deeply into ActionScript, probing its inner secrets for your benefit. His meticulous attention to detail, evident throughout this fine volume, combined with his easygoing instructional style, ensure the book will be appreciated by newcomers and experts alike. Enjoy the book, and enjoy ActionScript in Flash MX!
—Gary Grossman, Creator of ActionScript, Senior Engineering Manager, Macromedia Flash Team, October 2002.