New Features in Flash 8 Professional, Part 4
First you sweep the floor, then you make the scrapple
We've gone over three relatively large sections so far (here are links to part 1, part 2, and part 3 in case you missed them), so in wrapping up our grand tour of Flash 8 Professional's new features, it's time to think small. This article aims to be the dumping ground, the Larry King stream-of-consciousness column, the veritable scrapple, if you will, as we attempt to round up some of the "little" features in Flash 8 Professional and give them mention all at once. And with the very real potential for numerous health code violations, it's much like the scrapple-making process itself. So let's get started.
And I like to do drawr-rings
One of the nagging weaknesses in earlier versions of Flash were the drawing tools, but with Flash 8, things are looking up. No, you're not going to get the equivalent of an Illustrator-like program or anything like that, but there are some definite improvements.
For instance, Macromedia has introduced an entirely new way to draw (new to Flash, anyway), which it calls the Object Drawing Model. The best way to illustrate this is through an example. Let's say I'm working on a couple of very artistically challenging circles (fig. 1, left). In previous versions of Flash, if I happened to deselect the blue circle and then select it again to move it (or otherwise transform it), I'd be left with a cutout of where the blue circle was inside of the red circle (fig. 1, center). In Flash 8, toggling the Object Drawing mode in the toolbar before I start drawing (fig. 1, inset) creates a truly independent object (more akin to what happens in Illustrator), so objects can be moved around while drawing without the cutout effect (fig. 1, right). Of course, the old way is still the default, and can come in handy if you're trying to do cutouts, but it's nice to have options.

Fig. 1
Flash 8 also adds a couple of really nice capabilities to its previously lame handling of strokes. For one, Flash finally offers different types of caps and joints, which are accessed through new options on the Properties panel (fig. 2).

Fig. 2
Now, if you squint your eyes and direct your attention to a couple of portions of the Properties panel that I so helpfully darkened in Fig. 2, I'd like to highlight two more things that are improved in Flash's stroke handling: hinting and scaling.
Stroke hinting helps out in those situations when you have a thin line that happens to be sitting at a sub-pixel location. In earlier versions of Flash, you were pretty much stuck with a blurry, gray, 2-pixel approximation instead of a sharp 1-pixel line like you may have intended. Stroke hinting is designed to clean those types of lines up, resulting in nice-n-crispy strokes more often.
Stroke scaling is extremely helpful for those who want to change the size of an object, and especially so when using multiple instances of a symbol. Let's say I want to take a 100x100 pixel square with a 5-pixel stroke and change its dimensions to 150x200. Pre-Flash 8, the stroke scales with the rest of the square, with sometimes disastrous results. But now, the new Scale menu (fig. 3) allows me to keep the old behavior if I want ("Normal"), but also lets me set the stroke to stay the same size throughout ("None"), or scale relative to the horizontal or vertical scaling of the parent object.

Fig. 3
The last of the drawing-related improvements I'll mention have to do with Flash's handling of gradients. There's now a focal point control inside the Gradient Transform tool (fig. 4—the arrow), which allows you to change the point where the gradient originates. The remaining tools have also been updated with little itty-bitty icons to more accurately reflect their functions.

Fig. 4
Plus, you can now add up to 16 color blends inside a single gradient. Fig. 5 shows a really ugly (but illustrative) example.

Fig. 5
There are also several modes to handle gradient overflows (fig. 6), so when you use the Gradient Transform tool to scale a gradient inside the boundary of the object, you're not simply stuck with a simple repeat of the last color in the gradient (although that behavior is still available, and is now called "Extend").

Fig. 6
And finally, gradients can now be applied to strokes (fig. 7).

Fig. 7
Easing like Sunday morning
Those of us who inexplicably enjoy tweaking graphs in After Effects to achieve just the right velocity will enjoy the new easing controls built into Flash 8 Professional. Once you add an ease as usual in the properties panel (or by right-clicking frames in the timeline), simply clicking the "Edit" button in the Properties panel yields the Custom Easing controls (fig. 8). It's a thing of beauty on many levels. First of all, you can set different curves for different settings, or just use the checkbox to use the same curve for everything. Plus, you can add as many control points as you like, which would of course result in some pretty freaky movement, but who am I to judge? But the big advantage for me is that the split tween trick just to get a simple ease in/ease out effect is a thing of the past, as the Custom Easing editor allows for multiple eases in the same tween. The curve shown in Fig. 8 does both an ease in and an ease out in a single tween, and is a snap to set up.

Fig. 8
Textual Chocolate
Text has historically been somewhat of a red-headed stepchild in Flash, but no longer. First and foremost, the text rendering engine has been drastically overhauled. By default, text fields are created with the new "Anti-alias for readability" option enabled, resulting in very smooth and very legible text, even at small point sizes. However, if the readability option doesn't happen to float your boat, there are more default options to try (fig. 9).

Fig. 9
And when all else has failed, Flash lets you adjust the anti-aliasing yourself (through the "Custom anti-alias..." option until it's just right (fig. 10).

Fig. 10
Another long-awaited improvement to Flash's text handling is text justification. After many a fumbling explanation to clients as to why text couldn't be justified, the solution is here (fig. 11).

Fig. 11: This is perhaps the most exciting screen capture I've ever done.
The last thing I'll mention about text is a very welcome addition (or fix, according to some) to the way Flash handles images in HTML text fields. Text now respects the HTML Image Align tags and flows around the images (fig. 12), rather than getting squeezed around them (in what was usually a most ugly fashion) as in earlier versions.

Fig. 12
The exciting world of interface improvements
It seems that every upgrade of every program has 'em, and we've got to talk about 'em, because while they may be rather unsexy, interface refinements have the potential to be the most useful (or most hindering) changes in any upgrade. The good news is that overall, there's not a whole lot different in Flash 8. Sure, there are some new tools and subtle changes, but in general, if you're used to Flash now, you'll be used to Flash 8 right off the bat. That said, there are a couple things that beg to be called out.
I guess that "tabbed interface" lawsuit Adobe filed against Macromedia a few years back doesn't mean much now that the two companies will soon become one, since Flash 8 now lets you group panels together (fig. 13). It's implemented a little differently than the Adobe programs, though—you have to select a panel, go to the panel's context menu, and select the "Group <Panel> With..." option to define your sets. While not as intuitive as the tear-and-drag model in programs like Photoshop, it's still nice to be able to refine your workspace like this.

Fig. 13
Now, for you Mac fans out there, there is reason to rejoice. One of the reasons I actually preferred the Windows version of Flash 7 has been brought to the Mac in Flash 8: document tabs (fig. 14). In addition to multiple FLA files opening in different tabs, you also have the option of test SWFs also opening in a tab, which really cleans up the interface. As far as I'm concerned, the Mac's tabbed window behavior has now surpassed the Windows version. On Windows, if you don't have the document window maximized, you don't have the option to retain the tabs at all, which is an egregious oversight for those of us who have chosen to bust out of the dockable interface model in order to gain a little flexibility with panel placement. The Mac never had the fully dockable model to begin with, so adding tabs to the Mac version actually results in greater interface flexibility over the Windows version. Go figure.

Fig. 14
Also, two sources of frustration have finally been eradicated in Flash 8. The first may have technically been a bug, and as much as I hate to celebrate bug fixes in new versions as actual features, it's still worth a mention. I'm talking, of course, about how Flash 8 remembers where you put windows and panels between sessions. Quit Flash, do something else for a while, launch it again, and everything is right where you left it. Along those same lines (but definitely in the category of new feature), Flash 8 has added a selector menu to the Library panel (fig. 15), which allows you to use the same panel for multiple libraries. Anyone who has played "chase the Library" in earlier versions will no doubt be thrilled.

Fig. 15
The movie star...and the rest
Much like early versions of the Gilligan's Island theme song, where the Professor and Mary Ann only warranted an "...and the rest," I'm going to do a few quick hit mentions of new features to wrap things up. Not that they're any less important, mind you—I just couldn't think of an overarching category to place them in. It's up to you to decide whether that's lazy or clever. Anyway, here goes:
Script Assist mode. If you were one of the ones that cursed Macromedia's name at the removal of the "Normal Mode" in the ActionScript editor in favor of the "You should know enough ActionScript by now to figure this damn thing out" approach in Flash 7, you'll be happy to know that it's back in an enhanced form. The AS editor panel now sports a "Script Assist" button (fig. 16), which enables a ActionScript menu with associated wizards to aid in the scripting process.

Fig. 16
External Interface. For years Flash users had to resort to arcane and kludgy FSCommands to facilitate communication between Flash and an external host (usually the browser). Flash 8 introduces a new method for communicating with external entities (again, usually the browser, but increasingly Flash "wrapper" programs that extend Flash beyond the browser). The External Interface boasts a cleaner syntax with more options for communication outside of Flash, simplifying (for example) JavaScript calls from ActionScript (and vice versa). This one should be very interesting to watch, especially as the growing legion of SWF2EXE programs figure out how best to implement the External Interface.
Metadata. One of the big complaints about Flash is that it's not tremendously chummy with the various search engines that try to index Flash content. Macromedia has made a step (albeit a small one) towards remedying the situation with the introduction of metadata in Flash 8 (fig. 17). Located in the Document Properties window, Flash provides Title and Description fields that provide at least cursory information for indexing. I'd like it if this went a lot further and allowed all text inside a Flash movie to be indexed correctly, but I suppose this is better than nothing.

Fig. 17
Performance. Performance enhancements abound in Flash 8, and are always a welcome addition. There are a few areas worth mentioning here. One, Macromedia claims ActionScript performance is vastly improved over previous versions, a claim that I'll simply pass on at this point since it's hard to accurately gauge.
But Mac users can see with their own eyes the improvements to both the Flash 8 IDE and player in terms of performance—the difference over earlier versions is astounding. Macromedia is actually piping Flash through OpenGL for faster Mac playback, and the result is that Mac authoring and playback should be much closer to what Windows users have enjoyed to date. Tinic Uro has an excellent post on this subject over on his blog that's definitely worth a read.
The last performance enhancement I'll mention is one to use at your discretion: bitmap caching. Any vector-based object can have bitmap caching applied to it, either through a checkbox in the Properties panel or dynamically via ActionScript. Why turn a vector into a bitmap? Because Flash doesn't have to constantly calculate bitmaps, which can translate into faster frame rates and smoother animation if you're pushing a lot of vectors around. Add a dash of ActionScript into the mix to do this dynamically, and you literally can have the best of both worlds.
Mobile editing. I'll readily admit that this is an area I know very little about, since I'm here in the USA where our mobile services are woefully behind Europe and Japan, but Macromedia has been very busy getting the Flash Player onto more and more wireless gadgets lately. As such, they've made it pretty simple to create Flash content for mobile devices, embedding the Flash Lite player and several predefined devices into Flash 8 and enabling full previews of what content will look like on the target device (fig. 18).

Fig. 18
Auto player update. Got a Flash 8 movie, but your user only has Flash 7? Macromedia has provided a Flash 8 detection kit, which is basically a bunch of JavaScript and VBScript code that "sniffs" for the proper Flash version and can prompt the user to automatically install the latest Flash Player right from within your movie (fig. 19). This even works on non-IE browsers like Firefox and Safari, but don't worry—the user has to specifically agree to have their player upgraded during the process, so there shouldn't be a security issue for your users.

Fig. 19
Dynamic PNG and GIF support. Last, but certainly not least, you can now dynamically link to PNG and GIF files to go along with the JPEG support Flash has traditionally had. You could bring PNG and GIF files into the Flash environment before, but this is the first time you can link to external PNG and GIF files at runtime.
We're almost there...
By the time you read this, we should be just about into September (if not there already), and with it, the release of Flash 8 Professional. We've taken somewhat of a crazy ride around a slew of new features, and while I probably left out more than a few notable features, hopefully you've gotten a good idea of what's in store. I'll check in after Flash 8 has been out for a bit with a more formal review of the finished product, so be sure to join me then.
Got Feedback? to send an email. I'll do my best to answer. Really.
