Flash MX 2004
Multiple versions, multiple user types, multiple verdicts
Now that Flash MX 2004 has been out for a while, it's time to revisit the juggernaut web animation / multimedia authoring / rich internet application development / whatever-else-Macromedia's-marketing-department-wants-it-to-be-this-week package to see how it's holding up after a bit of the ol' scrutiny. And, as is quickly becoming the norm with a mature product such as Flash, it's not an automatic slam-dunk to come up with a single recommendation as to whether it may be right for you.
There are a couple of reasons why I'm going to approach this review differently than any other product I've reviewed. The first (and most important) reason is that Flash has evolved into a program that appeals to an insane number of user types, and with that being the case, Flash MX 2004 may vary in value according to how you have used Flash in the past. The second reason for a different approach is that I've already gone over a whole bunch of what both flavors of Flash MX 2004 offer in a first look article that ran a little while back, so if you need what amounts to a feature list of the different versions of Flash MX 2004 (along with lots of pretty screenshots), be my guest and take a look at that article.
Now, I've had a chance to put Flash MX 2004 (hereafter, FMX04) through a pretty rigorous workout on both the Mac and Windows platforms since it shipped, and one thing that became abundantly clear from the giddy-up was that for all the "breakthrough" features Macromedia claims it packed into FMX04 and FMX04 Pro, it may not be a worthwhile upgrade for some users, while being a no-brainer upgrade for others. With that in mind, I've tried to create a few sweeping barroom generalizations about the types of users Flash is apt to appeal to and assign a rating to each type based on what I came across while working with FMX04.
User type: New to Flash
Version likely to purchase: FMX04
Rating: Strong Buy
Yes, Virginia, as hard as it may be to believe, there are still some folks out there that are new Flash users. For those of you who are, I only have the following to say: What took you so long? No matter -- what's important is that you're about to be one of us now. Mwaaa-ha-ha-ha-ha-ha-ha-ha! Sorry. It's so easy to get caught up in my maniacal supervillainous ways. Now, this is as good a place as any to put the following disclaimer: some of the things you're about to read might give the impression that I'm down on Flash. Not true. Flash is an unbelievable program, one which I've found useful in ever-increasing ways over time. And taken as a whole, FMX04, whether the "regular" or Pro version, is an outstanding product, hence the Strong Buy rating for the new user segment. I'm just a little unimpressed with parts of FMX04 as a product upgrade, which happens a lot once any software product reaches a certain level of maturity, Flash included.
Anyway, if you've thus far resisted being assimilated into the Flash user collective for this long, you'll be pleased to find an extensive feature set and, more importantly for new users, a huge, entrenched community of generally helpful Flash developers, not to mention virtually assured playback on the vast majority of computers in existence. Now, go ahead and read the First Look article like I told you to earlier to get the lowdown on what's what, order your copy, and you can call it a day.
User type: Designer
Version likely to purchase: FMX04
Rating: Neutral
I'm not going to gloss over the next few arbitrary user types like I did to poor ol' Mr. or Ms. New to Flash, since I'm (rightfully or not) assuming that most of you are wondering whether or not to upgrade the version of Flash you currently own. Anyway, a lot of "us" started out as Flash designers, eager to add some sizzle to all them technologified Interweb pages with this here newfangled web animation format known as Flash. Of course, that was sometime around 1997, and while Flash is capable of so much more these days than it used to be, suffice it to say that the numbers of Flash users that still use it pretty much solely as a drawing and animation tool are legion. And for good reason. Flash MX brought sanity to an otherwise insane interface, finally making Flash a relative joy to work with for drawing and animation purposes when compared to previous versions. Unfortunately, while there are a few helpful tweaks present in FMX04 for designers, I'd have to say that overall it's pretty much a tossup as to whether FMX04 is a worthwhile upgrade for you. While I do have four pretty decent reasons why you should upgrade if you're a designer, I'd go so far as to say that a good rule of thumb is that if FMX02 is working for you right now and you have no real complaints or wants, you might be better off sticking it out with FMX02 for the time being. Regardless, here are the four big reasons designers might want to upgrade:
Reason number one is, at long last, a fix to the dreaded bitmap shifting bug. Now, it pains me tremendously to have to list a bug fix as a reason to upgrade, but it was such a nasty and pervasive one that it has to be mentioned. In case you've managed to get this far without coming across this particular unpleasantry, in previous versions of Flash bitmapped images had an extremely annoying sub-pixel shift when displayed on the stage, effectively killing any project that relied on bitmaps having any sort of pixel-accurate layout (and forget about trying to layer bitmaps on top of each other). Now that this is fixed, and Flash plays nicer with bitmaps in general, you'll get much more "real" use out of bitmaps in your Flash projects.
The second reason for designers to upgrade might be timeline effects (fig. 1). Why do I say "might be?" Because I've come to the conclusion that I find timeline effects to be beyond worthless, and in fact a detriment to my particular way of working, but I will acknowledge that some users will get a tremendous productivity lift from this feature's inclusion (because everyone's different and one man's crap is another's Crayola and all that). The gist is this: select something on the timeline, add a timeline effect, and viola! A non-destructive effect or transition such as a blur or drop shadow that you can fiddle with as needed.

Figure 1: Ooooh! Gratuitous blurring! OK, so I'm not a fan of Timeline Effects, but I will concede that some may find this addition useful.
Reason three for designers is the generous number of templates FMX04 ships with (fig. 2). From web banner sizes to mobile devices to presentations and quizzes complete with ActionScript built right in, the price to upgrade to FMX04 may be worth it in the time you save putting this type of stuff together. And, of course, you can save your own movies as templates that will be available from FMX04's New Document panel (fig. 3).

Figure 2: A small sampling of the included templates as seen through the Mac OS X Finder.

Figure 3: At the risk of revealing my evil plans, I felt it was important to show you that your own custom templates show up in the New from Template dialog just like FMX04's included ones.
The last reason (number four by my unscientific count) are the new text options present in FMX04. Between the new ActionScript that expands text formatting over FMX02, the new CSS support, and the addition of built-in aliased font capability, how you present your text is a lot more flexible.
User type: "Switcher"
Version likely to purchase: FMX04 Pro
Rating: Strong Buy
Flash has made great strides towards being a general-purpose interactive authoring tool, so I've pretty much invented a category of users known as Switchers, who may be evaluating Flash to replace another authoring package. For example, I'd feel pretty comfortable declaring Flash a very worthy substitute for the (former?) king of multimedia, and Flash's (aging/dying?) sibling, Director. Of course, there are some things for which Director (or insert your current multimedia authoring package that you happen to like here) may still reign supreme, like real-time interactive 3d and long-form video, but you'd likely be surprised at just how much Flash can take over for, right now.
First, let me mention again how much better FMX04 is with bitmaps than its predecessor. If you're going to come right out and call something a good general-purpose interactive authoring tool like I just did in the last paragraph, it better damn sight handle bitmaps correctly, and no worries here.
As some form of "scriptless" development is a growing hallmark of many multimedia apps, FMX04 also adds a few automatic features as well, features that make it possible to do some decent stuff without having to learn ActionScript. In the Pro version, there's a new type of authoring mode known as screens mode (fig. 4), which allows you to put together PowerPoint-style linear presentations with the appropriate navigation ActionScript already built in, meaning that you can just put animations or text or whatever onto a screen without having to script the general navigation. Combine this with the already-mentioned templates, and you've got a nice little presentation factory at your disposal. FMX04 also ships with a bunch of behaviors that take the ActionScripting out of common events such as loading external MP3 files and going to other points on the timeline (fig. 5). However, if you're planning on doing anything other than the most very basic of interactions with FMX04, you're going to have to bite the bullet and learn something about ActionScript, but these features will help you get by for a while in the meantime.

Figure 4: FMX04's screens mode introduces a new way of authoring content such as slide shows.

Figure 5: FMX04 includes a fairly healthy set of Behaviors to tide you over while learning ActionScript. Hell, they're even nice little timesavers once you do know ActionScript.
Speaking of ActionScript, if you're concerned about the overall multimedia-ability, so to speak, of Flash in general, don't be. ActionScript is a very mature scripting language, designed to handle just about everything you want to throw at it. After all, Macromedia really, really wants you to start building entire applications in Flash, so it would stand to reason that it would pack a nice under-the-hood programming language to support that.
Of course, I would never feel comfortable about touting anything as suitable for general-purpose multimedia if it didn't pass muster on the video front. What was a promising start in FMX02 is finally ready for prime time in FMX04. Just about everything pertaining to video in FMX04 is greatly improved over FMX02. Importing QuickTime clips in either version of FMX04 no longer results in you having to go directly to a third party like Wildform or Sorenson to improve your predicament, meaning that even the default method of converting clips to Flash Video results in pretty nice quality clips (fig. 6). If you'd rather have your clips in Flash-ready format before you even think of firing up Flash itself, FMX04 ships with a really, REALLY nice tool: the Flash Video Exporter (fig. 7). The FLVE is a QuickTime add-on that allows you to export FLV clips directly from any application that supports QuickTime. That means you can set up batches in Cleaner, save from Final Cut Pro, you name it. It's an outstanding addition and a huge timesaver if you've got a lot of clips for a particular project.

Figure 6: Where do I even begin with how much improved the default video import options are over FMX02?

Figure 7: The external-to-Flash FLV Exporter is super-handy, especially when combined with Cleaner or other batch conversion tool.
Now, FLV is nice and everything, but why would you want your clips in that format? Glad I asked. FMX04 is capable of playing back FLV files directly, with all the benefits a true streaming format affords you. Huge, huge, huge. Of course, in true Flash tradition, God help you if you want to try to actually implement this feature in your projects, as the mess of ActionScript you have to write to even begin to make this work is enough to make you want to claw your own eyes out, but it is there for the brave. Now, if you decide to blow a few more bucks and go Pro, you'll be given a nice set of ready-made components that make the process of playing back external FLVs a lot simpler (fig. 8). Not exactly fair, but that's life.

Figure 8: If you've got the bucks for the Pro version, you'll find playing back external FLV files a much smoother process over the ActionScript-only alternative, thanks to the included media components.
The last blow I'll inflict on this dead horse of a switcher segment is to mention that Flash "does" cross-platform runtime projectors from a single version, meaning that you can publish to a Mac program, Windows executable, and web-ready SWF/HTML combo all in one swift stroke (as Grand Moff Tarkin would say), and without having to purchase two versions of the program (as is the case with, and by far my largest pet peeve about, Director). Anyway, if you're considering multimedia authoring, FMX04 is the real deal. Finally, 'nuff said 'bout that.
User type: Geek
Version likely to purchase: FMX04 Pro
Rating: Buy
When I say geek, I mean that in the nicest possible way. I'm talking about a sliding scale; after all, we're all geeks to some degree, in that we tend to get all charged up about computer stuff. But a Flash geek? They're the Flash users who typically have the Stage and Timeline covered up with the Actions panel, Debugger, Bandwidth Profiler, Component windows, and whatever else Flash lets you play with while exploring the full glory that is ActionScript. In the interest of full disclosure, I, coming from the design end of the spectrum, will very likely just not have a whole lot to say about a great many of the super-techno things a Flash programmer will find compelling about FMX04, but I'm going to give it the old college try anyway. There are plenty of other sites that discuss things like Flash Remoting and database access and the other back-end features that I don't use and frankly don't really understand, so if you're looking for a real hardcore programming slant, I suggest finding another source. Bet that's got you all pumped up for what follows, so here goes!
FMX04 boasts a tweaked version of ActionScript, called, creatively enough, ActionScript 2. Supposedly, AS2 has been reworked to more closely conform to ECMAScript, which is the standard that Web scripting languages like JavaScript are based on. Now, while that may mean a great deal more to someone who sets up camp every day in the Actions panel (or even some sort of external AS editor like SciTE Flash) than it does to me, I've found that there is an impact from this change even for the more casual ActionScripter. First, under AS2, you are encouraged (but not required) to preface any variable declaration with the standard "var" syntax. So, for example, code that may have looked like this:
foo="bar";
should, ideally, now look like this:
var foo="bar";
Even I have to admit that this is good practice. Since forcing myself to code like this, I've had a much easier time finding what I've named variables than in the past. The other big ramification of ActionScript 2 for all coders is the fact that AS2 forces you to keep track of case sensitivity. So, if you're anything like me and have (however inadvertently) somehow managed to mix case of variables or custom functions or whatever, you may have some legacy projects that no longer work. What does this all mean? Let's say you have a variable called foo, which you've set to equal 10, like so:
var foo=10;
Then, later on, you need to change foo to some other number (let's say 20). In previous versions of Flash, you could do this:
Foo=foo+10;
and all would still be good. However, in FMX04, this results in an entirely new variable being put into existence, meaning that you have one variable named "foo" and one named "Foo," which can lead to whatever is depending on what the value of the lowercase "foo" is to no longer work. The bottom line is that you need to be cautious, and don't panic if you happen to open up an older project in FMX04 and things suddenly don't work anymore, as chances are better than average that you have nothing more than some mixed case issues running around. But how would one go about rapidly fixing such an issue?
What a nice segue into the next neat little feature in FMX04: the improved search and replace function (fig. 9). This handy panel allows you to search for text in more than just text fields -- you can search for strings in your scripts as well. This feature has proven quite huge for me in finding instances of improper case mixage (if I may invent a word) in my existing projects, as well as adding a feature that I always wondered why Flash didn't have before.

Figure 9: Where have you been all my Flash life, o Find and Replace panel?
Now, I don't know if the more hardcore programmer types among us will get as hopped up about this next feature as I did, but I'm finding script pinning incredibly useful (fig. 10). It's one of those little things I didn't even know I needed, but am quite glad it's now there. Anyway, the gist of pinning is that you can keep scripts open by "pinning" them to the Actions panel, creating what is in effect a tabbed interface to access scripts with. As someone who has a few strategically placed keyframes that house my functions and globals and such, it's nice to have access to these "master" scripts without having to track them down in the timeline every time I need to tweak something.

Figure 10: And yes, I enjoy you immensely as well, o Script Pinning.
While there are a few more geek-friendly talking points, such as project management and script-only authoring modes, the last thing I'll really mention in depth is the inclusion of Flash's new internal scripting language, JSFL (AKA Flash JavaScript). This is an exciting development not just for geeks, but for us mere mortal Flash folk as well. On the surface, JSFL is how Flash keeps track of all the undo states for the History panel. Beneath the surface, though, JSFL lets you (or someone who actually knows what they're doing) create custom commands for Flash by being able to script just about anything the Flash authoring environment can do. This opens up FMX04 to all manner of timesaving extensions. Case in point: one of my favorite Flash Bloggers, Guy Watson, has used JSFL to write an incredibly useful extension called "Delete Empty Keyframes." You select a layer, run the command, and it looks through the selected layer and determines whether there are any of those annoying empty keyframes present and gets rid of them (fig. 11). As someone who likes to use the "Copy Keyframe" function liberally across multiple layers, and as a result has gobs of empty keyframes strewn around any given project, this is a boon. While you can argue whether or not this particular example of JSFL in action would be useful to you, you can look forward to a lot more of these low-level Flash extensions popping up from here on out. That's why even if you don't care about JSFL directly, its very existence may end up affecting you profoundly nonetheless. Geeks, we're now finished with your section.

Figure 11: JSFL in action: Guy Watson's Delete Empty Keyframes command turned the timeline at the top into the timeline at the bottom. Notice how it got rid of just the empty keyframes that were actually useless, leaving the ones in place that served as spacers for labels or other active keyframes. Very cool.
User type: "Tweener"
Version likely to purchase: FMX04 or FMX04 Pro
Rating: Buy (barely)
The Tweener is another user type I made up to describe my own situation. I can do that. I'm the author. Anyway, I've come across more than a few Flash Tweeners, who can best be described as Flash users that started out as either Designer or Geek and who, over time, have picked up quite a bit from the other side of the Flash spectrum to become what amounts to all-purpose Flash folk. These Tweeners may not explore every nook and cranny of what Flash has to offer, but suffice it to say that they do get around in terms of actually using a wide variety of Flash's features. This user base may ultimately be able to most easily find reasons to upgrade to FMX04, and while there may be more than a few appealing improvements, the real compelling ones are few and far between. I think I've singled out enough features so far, so I'm not going to go into a long(er)-winded rehash of stuff I've already mentioned, but I will reiterate what I said for the Designer crowd: If FMX02 is working for you, you just might want to stick with it.
Worth a mention
As much as we probably all wish I was done by this point, alas, no such luck. There are a few things I still want to get off my chest that transcend whatever user types I've invented. Time for some bullet points to keep things moving along:
Speed, speed, speed. The Flash 7 player has gained, according to Macromedia, anywhere between a 200% and 800% boost in runtime performance, and after seeing it in action, I tend to agree with those numbers for the most part. Even better, the Flash 7 player will also accelerate Flash 6 and earlier content, meaning that even if you don't ever move to FMX04, there are still circumstances where your stuff will run faster without having to lift a finger. Mac users are the beneficiaries of most of this speed. Quite simply put, the difference in playback between the Flash 6 and Flash 7 players is nothing short of miraculous, and seriously bridges the performance gap between Macs and their Windows counterparts. And if you do develop on a Mac, do yourself a huge favor and upgrade to Panther. Whatever Panther's other flaws, the Flash authoring environment in 10.3 is lightning-quick, so much so that there isn't any discernible difference between working on a Mac and a comparable Windows machine anymore. And this is coming from someone who pretty much switched to Windows because of how Flash ran on the Mac back in the FMX02 days. (I'm back on OS X now, so put away the flamethrowers, Mac people.)
The "borrowing" of the Save and Compact feature from Director is a great addition (fig. 12). Flash documents had this annoying tendency to never decrease in file size even after removing huge unused bitmaps or audio files or whatever from the library. The Save and Compact feature fixes this shortcoming, meaning that you can trim the bloat in FMX04 without having to save your file as a fresh document, as was the workaround up to this point.

Figure 12: Welcome to Flash, Mr. Save and Compact menu option.
As FMX02 was for Flash 5, FMX04 is a great environment for creating Flash 6-targeted content. There's even a publishing mode that targets later versions of the Flash 6 player (fig. 13), in case you want a little extra oomph but can't go whole hog yet and author directly to version 7.

Figure 13: MX04 is a nice tool to author Flash 6 content, offering optimizations for later and greater versions of the Flash 6 player.
I hate, and I do mean hate, that the main document window doesn't have tabs in the Mac version (fig. 14). The Windows version has tabs here, and it's a huge improvement in terms of workspace organization when multiple documents are open. C'mon, Macromedia. You could have put this feature in without being inconsistent with the Apple UI guidelines.

Figure 14: If you're a Mac user, you're still stuck in the Dark Ages of Flash document switching -- through the stinking Window menu. Windows users, you're beyond golden with the tabbed interface Macromedia apparently only wants you to have.
FMX04 finally introduces that long-awaited feature that millions of users have been asking for: product activation! I'm not a fan of this growing trend in software, as it just seems to hinder (at best) or outright punish (at worst) legitimate, paying users, but at least Macromedia has a fairly liberal policy of being able to install FMX04 on a secondary machine (such as a laptop) for a single user. I don't like the concept of activation, but it's not the worst implementation around, so the end result is that it's more or less tolerable.
The biggest beef I have with FMX04 is that it just generally feels unpolished, with stupid stuff affecting the Mac and Windows versions alike. Troll around Flash message boards and you'll see what I mean. It's begging for an "7.0a" version update, and hopefully Macromedia will deliver. Some of the things I've directly observed are overall sluggishness, "forgetting" of window placement (especially where the Library is supposed to go) when switching panel sets, and having to consistently re-import custom publishing profiles. It's just sloppy, and when you're shelling out a few Benjamins for what is supposedly a mature product, it's kind of unacceptable to have this stupid garbage make it into a shipping version.
The bottom line
The reasons to upgrade to FMX04 or not, as you have probably figured out by now, are indeed numerous enough to fill a multipage review. All else being equal, though, FMX04 is a toss-up as an upgrade but a slam dunk of a "hell yeah" when looked at as a full product. The few reasons I personally found to upgrade (speed and improved video) aren't many, but they are pretty compelling. So guess what? I'm going to do a big ol' cop-out, and encourage you to go ahead and download the trial version of FMX04 from Macromedia. It'll give you thirty full days to make up your own mind, during which you'll be free to switch back and forth between the regular and Pro versions of FMX04. In any event, Macromedia Flash MX 2004 is available now at the following prices: $499 (standalone regular), $699 (standalone Pro), $199 (regular upgrade), $299 (Pro upgrade), $899 (regular, as part of Studio MX 2004), or $999 (Pro, as part of Studio MX 2004). Got all that? Good. You have your homework, so get to it!
Got Feedback? to send an email. I'll do my best to answer. Really.
