Flash 8: Enhanced Strokes and So Much More
Flash 8: Enhanced Strokes and So Much More
A Biased Review of the New Release
by Colin Moock
===================================================
Disclaimer: this review is my completely biased, personal impression of
Flash 8. If you want to form your own opinion instead of reading mine, visit Macromedia's feature guide for Flash 8.
Remember, if you're ordering Flash 8 you should consider ordering it through an affiliate link to support your favourite site. Details here...
For the impatient, here's my quick take on 8:
Flash 8 is fantastic. I give it an A+ (compare that with the B+ I would
have given Flash MX 2004's initial release if I had been doing letter
grades back then). Flash 8 is an extremely high quality release with
many new "must have" features. Specifically, the features I think most
folks will upgrade for are:
-Enhanced Strokes
-Custom Easing Controls for Tweens
-Filters (drop shadow, glow, blur, etc)
-9-Slice Scaling
-Runtime Bitmap Caching
-Video Improvements
-Improved Text Rendering and Control
-Programmatic Bitmap Creation and Processing (BitmapData Class and Filters)
Ok, A+ is a pretty good grade. Let's dig a little deeper to see why I think it's justified.
When Flash MX 2004 was released, I was excited by many of the new
ideas (most importantly for me, ActionScript 2.0), but I was a little
disappointed with the general quality of the app. Many of the
innovations were only partially implemented. For example, you couldn't
drag a component from the components panel to the Library. And some
fundamental behaviours of the application were changed in ways that
proved frustrating for users. For example, the undo system changed from
object-based to document-based and "normal mode" scripting was removed
completely. Overall, Flash MX 2004 felt a little ragged. The Player was
very good, but the authoring tool needed work.
Well, welcome to Flash 8. It's been two years, and Macromedia has
the ship back on course, running smoother than ever before. Flash 8's
level of quality represents a real commitment to users while its new
feature set represents a continued commitment to creative
computer-based expression.
Designers and motion graphics professionals will be happy to hear
that many of Flash 8's new features are aimed squarely at them--more so
than Flash MX 2004, which focused heavily on programmers. If you do a
lot of motion graphics or animation right in Flash you'll definitely
want to upgrade, especially if you skipped upgrading to Flash MX 2004.
Flash 8 finally gives users tons of control over easing (accelerating
and decelerating tweens). Position, rotation, scale, color, and even
filters can now be eased separately. Did he just say "filters"?? Yes,
designers will also appreciate the new bitmap filters (drop shadow,
glow, blur, etc) that can be applied to movie clips and buttons. These
filters are the real deal, not some vector hacked version like Flash MX
2004's experimental "Effects" feature. The arduous days of importing
PhotoShop images to produce bitmap effects are over.
Other designer-centric feature include blend modes, 9-slice scaling,
the return of "normal mode" scripting (now called Script Assist), and
hundreds of minor stability and usability tweaks (9 resize handles on
text fields, yay!). Most of the motion graphics professionals I've
talked to expect Flash 8 to reduce their average labour on a job by 25%
or more.
For developers there are improvements to the editing environment and
the debugger that will come in handy, but of greatest interest to most
programmers will probably be the bitmap processing additions to the
Flash Player API. See runtime bitmap caching and programmatic bitmap
creation below.
If you want a laundry list of the new features in Flash 8 take a look at the following Flash 8 help entries:
* Using Flash > Introduction > What's new in Flash
* Learning ActionScript 2.0 in Flash > What's New in Flash 8 ActionScript
Anyway, I figured the best way to do a review would be to go through
most of the important new features and discuss the impact and
significance of each. If you want to learn how to use each feature,
consult the above help entries. Ok, here we go. Flash 8,
feature-by-feature.
##
Gradient Enhancements
Gradients are now easier to create and edit, and have a few new tricks
(more colours, overflow and interpolation options, etc). This feature
nicely improves one of Flash's drawing weaknesses.
##
Object Drawing Model
"Object drawing" is a new mode for drawing shapes. It stops Flash's
idiosyncratic shape-merging drawing system from cutting away
overlapping shapes. Adobe illustrator users will love this. However,
note that the new object drawing mode has to be enabled when using a
drawing tool by pressing the "J" key or by pressing the "Object Drawing
button" next to the magnet in the Tools panel.
##
Rectangle and Oval Tool Settings Dialog Box
Alt-click or Option-click the stage with the Rectangle or Oval tool to
specify the numeric dimensions of a new shape. This is a minor workflow
improvement that's kinda useful, though I would have appreciated being
able to set the x,y coords at the same time.
##
Enhanced Strokes
Square end caps!! (Duh.) Line thickness increased to 200. Mitered line
joins. Scale shapes without affecting line thickness. Man this stuff
has been a looong time coming, and will make your day/month/year if you
do much drawing in Flash. Unfortunately I find the joining is a bit
quirky (e.g., sometimes small orphaned lines are left behind when
changing or moving line joins). But overall the new strokes are a very
welcome improvement. The new line styles are also scriptable with
ActionScript, which is great for creating programmatic graphics. Note
also that stroke hinting was added to Flash Player 8. Hinting fixes the
ugly rounded rectangle corners problem found in older versions of
Flash. For details, see Tinic Uro's excellent blog.
##
Text Handles
Resize a text box without first having to double-click it! (Duh.
Again.) Well, I'm glad they finally improved text resizing.
Unfortunately you still can't set the size of a text box numerically
without also scaling the text. Maybe next version.
##
Improved Fireworks importer
No comment. (I don't use Fireworks.)
##
FlashType
Originally code-named Saffron, FlashType is a text rendering engine
that improves readability of pretty much all text in Flash (requires
Flash Player 8). Readability is a subtle, but great thing. This is a
very important improvement that fixes one of Flash's longest standing
problems, and will help the acceptance of Flash as a platform.
##
Anti-alias Individual Text Fields
Set the amount of anti-aliasing for each text field separately. Set
text to "Anti-alias for animation" to make Flash ignore alignment and
kerning, which speeds up animation at the cost of legibility and
increased filesize. This is a good improvement for motion graphics
creators.
## Script Assist
Basically, normal mode is back. I'm sure lots of less-experienced
programmers will appreciate the hand-holding from this code-editing
helper.
##
Expanded Stage Work Area
The big grey no-man's land around the Stage in the authoring
environment is now bigger, so you can now animate big things into view
from off-screen a little easier. I'm glad for the minor improvement
here but I'd like to see even more improvements to the work area. For
example, I'd like the work area to be infinite (or really huge) and I'd
like it to have a map tool that for navigating the work area.
##
Improved Panel Management
Group panels together and navigate between panels with tabs, like Adobe
Photoshop. This is a subtle change that makes the whole app feel more
polished, and probably makes you a little more productive.
##
Single Library Panel
Switch between libraries easily in the same panel while editing a
single .fla file. This improvement definitely reduces the hassle of
working with assets across multiple .fla files.
##
Drag and Drop Components to Library Panel
If you want to add a component to your Library, you can now just drag
it there. You don't have to first put it on the stage anymore. I'd
almost call this a bug fix, not a feature. It should have worked like
this in the first place.
##
Macintosh Document Tabs
No comment. (I don't use a Mac (yet).)
##
Improved Preferences Dialog Box
Not many people will notice that the preferences dialog has even
changed, but it has. It's more organized now. And I'm glad Macromedia
cleaned things up a bit--it shows they're dedicated to improving
workflow in subtle ways, which adds up to a better app experience
overall.
##
Linkage Options for Bitmaps and Sounds are Now in the Properties Dialog Box
Again, not many people will notice this, especially because the Linkage
options are hidden under the "Advanced" button on the Properties
dialog. This change doesn't thrill me. I'd personally get rid of the
advanced button, put all the Linkage options up front on the Properties
dialog, and get rid of the Linkage options dialog altogether.
##
Object-based Undo and Redo commands
Choose your undo style--either a single undo history for the entire
document (Document-level undo) or a separate undo history for each
object (Object-level undo). Until Flash MX 2004, the undo system used
separate histories for each object. In Flash MX 2004 the undo system
changed to a single undo history. Users of old versions complained
about the change, so now you can pick your undo style. If you never
noticed the change, just use Document-level undo (the default), and
don't worry about it. If you want your old undo system back (i.e., the
undo system from Flash 6 and older, choose Object-level undo under Edit
> Preferences > General > Undo, and rejoice.
##
Export Keyboard Shortcuts as HTML
Make a web page of the keyboard shortcut set you use! Hm. Maybe some
big design house with 37 junior designers and a very anal manager
requested this one.
##
Multiline Support in the Strings Panel
Translated text can now have line breaks. I don't do a lot of work that
needs translation myself, but I'm sure there are plenty of folks
celebrating at the removal of the very unfortunate single-line
restriction that plagued Flash MX 2004.
##
SWF File Metadata
Give your Flash content a search-engine friendly description and title
(under "Modify > Document"). Search engines that look inside binary
.swf data can then better rank your Flash content with other kinds of
data (e.g., html, pdf, word). Good idea. This is a decent step towards
making Flash content more indexable by search engines, but it's a bit
fragile because it relies on 1) authors remembering to provide
information and 2) search engines implementing a new Flash-specific
search routine.
##
Local and Network Playback Security
File access for .swf files running on the local machine has changed.
Locally running .swfs can now access files either on the local file
system or over the network, but not both. Projectors are not
affected--as before, projectors can access files both on the local file
system and over the network.
This new security system adds yet another security-related
development limitation, which is a drag, but at least Macromedia is on
top of the issues. If your .swf file really *must* access both the
network and the file system, you have two options: 1) install a config
file on the user's hard drive (or have the user put it there by hand),
or 2) have the user mark your .swf file as trusted using the online
settings manager at:
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html.
Flash authors should use the settings manager to mark sections of their
hard drive as trusted for development purposes.
For more info on configuration files, see the following entry in the
Flash 8 Help: Understanding Security > About local file security and
Flash Player > Testing content locally with Flash 8 local file
security restrictions > Creating configuration files for Flash
development.
On a related note, if you've never quite understood why you need a
crossdomain.xml file, take a look at Martijn de Visser's animated
explanation here: http://www.martijndevisser.com/archives/000056.php.
##
Improved Flash Player Detection
This is pretty much just the latest version of the Flash Player
Detection Kit (see
http://www.macromedia.com/software/flashplayer/download/detection_kit/).
It's a very good improvement on the previous detection offered by Flash
MX 2004 and I'm glad Macromedia has done the right thing by providing
the industry with a standard detection system, but I just don't like
detection because it fails under too many marginal conditions. Even a
detection system that works 99% of the time strands 10,000 users daily
on a site that gets a million hits a day. I've therefore discontinued
work on my own Flash detector (see
http://moock.org/webdesign/flash/detection/moockfpi/).
##
Custom Easing Controls (Flash Professional only)
Complete control over acceleration and deceleration for motion tweens
using a graph and as many control points as you want. Set easing for
position, rotation, scale, color, and even filters separately. This is
*truly* a wonderful feature, bound to really enhance web motion
graphics. Motion designers should be salivating at the prospect of
adding zippy, bouncy transitions that can even include faux shadow and
lighting effects, all rendered in realtime vector goodness. (If *only*
each filter could be eased separately from other filters, and easing
presets, saving, and loading were supported then this feature would be
perfect.)
##
Filters (Flash Professional only)
Apply drop shadow, blur, glow, bevel, gradient glow, gradient bevel,
and color adjustments to movie clips and buttons. "Flash, meet
Photoshop...you should be able to learn a lot from each other."
Basically, these are bitmap-style effects rendered on real-time
vectors. I love them. Superb feature. And you can even create filters
using ActionScript!
##
Blend Modes (Flash Professional only)
Blend two movie clips (or buttons) together using the following modes:
layer, darken, multiply, lighten, screen, overlay, hardlight, add,
subtract, difference, invert, alpha, and erase. Again, straight out of
Photoshop. Graphic designers will love this feature, but not as much as
filters :).
##
Video improvements (Flash Professional only)
The list of improvements to video includes: a new video codec (On2 VP6)
for better quality video and smaller video file size, improved video
import wizard, stand alone video encoder, alpha channel support
(transparency in videos!), and embedded cue points for triggering
events from specific points in a video. I don't do much video work, but
these are all super-sweet improvements that will help push web motion
graphics ever closer to broadcast quality.
##
Bitmap Smoothing
Some issues causing rendering artifacts on bitmaps, particularly with
bitmap zooming, have been addressed in both Flash Player and the Flash
authoring tool. Generally speaking, this means bitmaps display better,
and that's a good thing. This is more bug fix than a new feature, per
se, but either way it's good.
##
Runtime Bitmap Caching
Render individual movie clips or buttons as bitmaps that are not
redrawn every frame (rather than as vectors that are redrawn every
frame). Runtime bitmap caching can massively improve graphical
performance when animating the position (but not rotation!) of complex
vector shapes whose content does not change. Hooray! Bitmap caching
opens up huge possibilities for games developers and visual artists
with complex animations like James Patterson.
##
Load GIF, PNG, and Progressive JPEGS
Use ActionScript to load the web's most common image formats. Nice! This was a long time coming.
##
9-Slice Scaling
Divide a movie clip into a 3x3 grid such that when the movie clip is
scaled the center section of the grid is resized normally, the corner
sections of the grid are not resized at all, the sides of the grid are
resized vertically but not horizontally, and the top and bottom of the
grid are resized horizontally but not vertically. 9-slice scaling is a
tremendously useful feature for creating stretchy user interfaces such
as resizable windows or buttons.
##
File Upload
Use two new classes--FileReference and FileReferenceList--to upload
files to a server. You've been able to upload files using HTML for as
long as the web has been around. Now you can finally do it in Flash
too. I'm actually excited about this feature...I think it could open
the door for some interesting collaborative content.
##
Mobile Device Emulator (Flash Professional only)
Test your Flash Lite content in device emulators, complete with
interactive keypads for controlling the Flash content. If you create
Flash content for phones or other devices this will save you massive
amounts of time and effort.
##
Various programmatically generated text improvements
Lots of new little things for dynamic text, including control over
rendering to improve legibility (TextField.antiAliasType,
TextField.gridFitType), kerning, letter spacing, negative leading
support and super speedy scrolling (see MovieClip.scrollRect). Control
over text and legibility are essential to both motion graphics and
application development, so I'm really happy to see these improvements.
I think the days of notoriously bad Flash text are finally over.
##
Programmatic Bitmap Creation
Use the BitmapData class to create bitmaps from scratch at runtime.
Take full control over individual pixels, apply filters, perform colour
replacement, apply transparency, copy movie clips to a bitmap, and
apply distortions using perlin noise, an algorithm for generating
visual effects such as ripples and disolves. This is a massive feature
that will open up a lot of doors in motion graphics and game
development.
##
ConvolutionFilter
Use the ConvolutionFilter class to perform matrix convolution on
bitmaps. Used for various forms of image processing, including
sharpness, edge detection, embossing, gaussian blur, motion detection,
shape recognition, and noise reduction. An important part of many games
and sophisticated graphics applications, convolution is very handy to
have built into the Flash Player API.
##
ExternalInterface
Replaces fscommand() as the new preferred means of communicating
between ActionScript and javascript or the Flash Player's host
environment. Call a method from javascript or ActionScript and receive
a return value in response! Great stuff. I'm very glad to see
fscommand() finally overhauled. It's great to have a more formal and
feature rich means of communicating with external host apps.
##
Other ActionScript additions
Lots of other minor things were added to ActionScript...too many to discuss here, but things like:
* MovieClip.opaqueBackground for making solid movie clip backgrounds
* a Point, Rectangle, and Matrix class
* MovieClip.beginBitmapFill() for filling a clip with a bitmap
* the status parameter of MovieClipLoader.onLoadComplete() for handling 404 messages (file not found)
* and so on and so on
For the full list of what's new in ActionScript, see the following
entry in the online help: Learning ActionScript 2.0 in Flash >
What's New in Flash 8 ActionScript > New in ActionScript 2.0 and
Flash 8 > Additions to the ActionScript language.
Thank you Macromedia!!!
==========================
Well that's it for Flash 8, and that's also it "Macromedia" Flash. I
suppose it'll be "Adobe Flash" next time around. So I think it's worth
taking a moment to stand up and thank Macromedia for contributing so
much to the history of computers, the internet, expression, and
communication. Flash isn't just a piece of software or a product to
sell, it's a means of exploring the human experience. For giving us the
tool to conduct that exploration, I believe we all owe a great deal to
the passionate, brilliant minds on the Flash team at Macromedia, both
past and present. They have been the sage custodians of the Flash
platform for the past 10 years, and borne that responsibility with care
and invention. Thanks guys! Your devotion is a gift to us all.
Colin Moock
【转自】vFlash 8: Enhanced Strokes and So Much More