If you follow the development of "bleeding-edge"
technology, you may have noticed how often software is created, updated,
and made obsolete. At times, this cycle seems to happen almost on a
daily basis. But exactly how many practical — and affordable — options
exist for Web development? How can production teams develop consistent
frameworks with a variety of server technologies to efficiently build
Flash presentations and applications? In this section, I discuss how
Flash CS5 continues to push the direction and limits of the Internet.
1. High expectations for Web experiences
Despite the devastation to Web
production brought about by the "dotbomb" era (that is, the economic
recession that occurred after many dotcom companies went out of business
around the year 2000), the Internet economy has rebounded tremendously.
People visiting your Web sites or using your Web-based applications
expect to experience engaging interfaces with amazing graphics and
sound. Clients who hire you expect that you can produce this type of
material. Clients may also believe that everyone will be able to visit
the site and download material instantaneously (regardless of connection
speed limitations), and that every visitor will have the same
experience. Before you consider whether Flash is the best tool to meet
your clients' goals, let's step back for a moment and consider Flash's
history.
With every release of a new
version of the Flash Player, Web developers have access to bigger and
better capabilities. I've seen a vast evolution from the early days in
1997 of mere vector animations, which were vastly smaller in file size
compared to standard GIF animations. In 1998, Flash Player 3 made a
marked improvement by introducing more control over these animations. At
that time, Web sites with small games started to arrive on the
development scene. That was also the year when Macromedia Generator was
introduced, enabling dynamic graphics and data for Flash movies. Many
companies were apprehensive about investing in Flash development because
Flash was relatively new, although it was gaining ground as an accepted
form of Web delivery.
In 1999, when Flash Player 4
was introduced, this attitude changed a great deal. The new version was
much more powerful and could accomplish many of the tasks that Generator
provided in the past. Database interaction and dynamic content were
suddenly possible in real time. However, Flash 4 was still a difficult
application for developers to use; the programming interface for
ActionScript code was limited by drag-and-drop functionality (which was
avoidable only by using third-party software). This problem no longer
existed in the 2000 release of Flash 5. Flash Player 5 could load XML
data at runtime, and ActionScript "grew up" to come a bit closer to an
object-oriented programming (OOP) language that strongly resembled
JavaScript.
In 2002, Web designers
and developers were handed the sixth version of Flash, dubbed "MX."
Flash MX marked Macromedia's success at integrating all of their
software products into a universal framework, where ColdFusion,
Dreamweaver, Fireworks, Director, and FreeHand could all be used
together to produce a new breed of Web experiences, including Rich
Internet Applications. With the new software and player, XML data was
processed remarkably faster, movies were made accessible to those with
physical challenges, and Macromedia Generator was no longer necessary to
incorporate dynamic graphics. Flash Player 6 could load JPEG and MP3
files at runtime. Developers could create reusable components that
greatly decreased development time. Also, Flash Player 6 introduced
support for video playback. Flash movies also became more browser
friendly with named anchors that enabled specific sections of Flash
movies to be bookmarked. ActionScript continued its development into
more of a "real" programming language, as more objects and event
handling were exposed in application programming interfaces (APIs).
Perhaps most important, Flash Player 6 could integrate with new data
transfer methods made available by Flash Remoting MX, which enabled
serialized data to move more efficiently from application servers (such
as ColdFusion MX) to Flash movies. Flash Communication Server MX 1.0 and
1.5, released shortly after Flash MX, enabled Flash movies to
synchronize live data among several connected users simultaneously —
developers could create live chat rooms, multiplayer games, and shared
whiteboards, just to name a few applications. Flash Communication Server
also added the capability to stream live or prerecorded audio/video
streams to Flash Player 6.
NOTE
Flash Communication
Server is now split into two different products: Adobe Flash Media
Server and Adobe Flash Media Interactive Server.
Flash Player 7 was
overwhelmingly optimized for speed. Everything from video playback to
text rendering to ActionScript performance was vastly improved over
Flash Player 6. This feature alone encouraged business clients and Web
surfers alike to adopt the new player version; everyone loves faster
performance. Of course, there was a whole lot more to Flash Player 7. It
enabled you to customize the contextual menu (that is, the right-click
menu) that Flash movies running in the player display, and, by default,
HTML hyperlinks within Flash text supported Open in New Window and Copy
Link options in the contextual menu. On the Windows platform, mouse
wheel scrolling was now supported for internal Flash elements. Small
text sizes could be rendered more cleanly (or crisply). JPEG or SWF
content could be loaded and displayed inline with Flash text. Style
sheets and CSS files added new formatting options to Flash text,
enabling you to share styles from DHTML documents with your Flash
content. Video lovers were enticed by the capability to load Flash Video
files (.flv) directly into Flash movies, without the use of Flash
Communication Server MX. Printing control was far superior in Flash
Player 7 and ActionScript with the PrintJob
API. Flash MX's UI components had been completely revamped and released
as V2 components, and Flash MX Pro 2004 Pro could use Data and
Streaming Media components.
A seismic shift for the Flash
platform occurred with the release of Flash Player 8. This player
further improved text rendering capabilities with the new FlashType
engine. Now you could pull off 8-point type without resorting to a
limited range of pixel-based fonts. The new filter and blend modes
revolutionized the visual expressiveness of Flash user interfaces and
animated content. The amazing On2 VP6 video codec pushed more and more
Windows Media, QuickTime, and RealOne media producers over to Flash
Video. Sites like ABC.com and MTV.com migrated nearly all of their Web
video offerings over to Flash Video. The expanded image file support for
runtime loading in ActionScript left no excuses for building your own
image management utilities in Flash — with Flash Player 8 you could load
PNG, JPEG, progressive JPEG, and GIF images into the Flash movie.
When Flash Player 9 was
released in 2006, Adobe, fresh after the acquisition of Macromedia,
built Adobe Flex Builder 2, which opened the Flash platform to many
programmers who didn't want to learn a designer-centric tool like Flash.
Flash Player 9 offered a brand-new ActionScript Virtual Machine, or
AVM, to process more complex ActionScript code. This new code base was
dubbed ActionScript 3.0. Flash Player 9 had two AVMs, one for earlier
ActionScript (1.0 and 2.0) and one for the brand-new ActionScript
language (3.0). Shortly after Flex Builder 2 was released, Adobe's teams
developed consistent user interfaces (UIs) for the flagship products.
Adobe also continued Macromedia's commitment to pushing the Web to a new
definition of excellence by offering Flash developers a wide range of
tools to build incredibly powerful applications. Both Flex Builder 2 and
Flash CS3 could use the strength of ActionScript 3.0 to build high-end
Web applications. Flash Player 9 also enabled Flash content to go full
screen and be viewed out of the browser window. Want to make that Flash
Video clip go full screen? No problem! Flash Player 9 Update 3 extended
video support by adding the popular AVC/H.264 video codec as well as its
companion AAC audio codec for incredible video and audio quality that's
compatible with other major video plug-ins such as Apple QuickTime
Player. This update also provided cacheable runtime shared libraries for
Flex 3 projects, enabling fast loading and initialization of rich
Internet applications (RIAs) built in Flex Builder 3.
Between Flash Player 9 and
the release of Flash Player 10, Adobe released a new desktop platform
based on Flash, HTML, and PDF technologies called Adobe AIR, or Adobe
Integrated Runtime. This new platform enabled Flex developers to build
Flash content that ran natively on the desktop computer, outside of a
Web browser. AIR applications behave just like other installed
applications, having access to system resources and local storage. You
can do things like drag and drop files from the desktop to interactive
elements within your AIR application!
Now, Adobe has created the tenth major release of the Flash Player: Flash Player 10. Flash Player 10 extends three-dimensional (3-D) support to all 2-D
objects you can create with Flash drawing tools. Real-time streaming
protocols for audio and video have been updated to improve quality of
service during playback. Hardware acceleration available in newer
computer and video card processors can be leveraged in Flash Player 10
to increase the speed at which graphics are composited on the screen,
especially with full-screen video. Hydra, a scripting language for
custom filter effects, has been added to Flash Player 10, enabling you
to build your own filters that work not only in Flash movies but also in
After Effects projects as well!
When Flash 5 was released,
Flash was undoubtedly the key for Web branding, and it seemed as though
every company wanted Flash content on its Web site. Flash has continued
to enjoy this popularity, despite opponents calling the technology
"unusable" or not compliant with Web standards. You could almost compare
the introduction of Flash to that of the color television. It's
difficult to return to largely static HTML pages after seeing the
interactivity, animation, eye candy, and innovation that Flash sites
offer to Web surfers — even those on slow connections or portable
devices. Because of Adobe's efforts to keep the file size of the Flash
Player smaller than most browser plug-ins, and the fact that it has been
preinstalled on most systems for some time now, Flash remains a widely
accessible and acceptable technology for Web deployment.
2. To Flash or not to Flash?
One of the crucial tasks of a
Web designer or developer's job is to decide if Flash is the most
appropriate tool to achieve the goals of a given project. Consider why
you want — or need — to employ Flash in your work, because there are
occasions when it may not
be the best choice. It may not be wise to use this technology merely
because it is "the thing to do" or is "cool." If you're pitching Flash
projects to clients, it's a good idea to be prepared with reasons why
Flash is the best tool to use to get the job done.
2.1. An effective use of Flash
With the Flash CS5 authoring
tool, you can create a wide range of presentation material or develop
fully functional applications that run in a Web browser or on handheld
devices:
Flash can generate very small file sizes while producing high-quality animation with optimal sound reproduction.
Even companies making world-renowned cartoons, such as Disney, use
Flash for some of their work. Because of their small file sizes, Flash
movies (such as cards or announcements) can even be sent via e-mail.
Nearly any multimedia file format can be integrated into Flash.
Vector images (such as EPS, FreeHand, Illustrator, and PDF files),
bitmaps (GIF, PCT, TIFF, PNG, and JPEG), sound files (such as WAV, AIF,
or MP3), and video (such as AVI and MOV) are all importable into your
movies. Plug-in technology or third-party software is not required
(although it does exist) to accomplish these imports. Nor is it required
to play back your movies in Flash Player 10. Significant editing
advantages sometimes exist when using imported files, such as symbol and
layer formatting from FreeHand and Fireworks files. These features can
be beneficial if you will be working with a client's raw resources.
Precise layouts with embedded fonts are possible with Flash.
Formatting is usually inconsistent when you use HTML to describe page
layouts, and formatting can easily vary from one browser to the next.
You can be confident your movies will be formatted and displayed
consistently when viewed with the Flash Player.
Flash Player 8 and later add
support for crisp-looking text at small point sizes. In previous
versions of Flash, most embedded fonts did not display legibly at these
sizes. You have precise control over how fonts render at small point
sizes.
|
|
Text, movies, images, and sound files can be displayed in your movie from a remote data source.
You can incorporate dynamic content into your movie as long as the data
source (such as a database or XML file) can be accessed from your host
Web server or application server. Flash Player 7 or later can consume
Web services directly, allowing you to build B2B (business to business)
applications that take advantage of public or private data sources, such
as weather reports and stock information.
Just as you can receive information from a database in your movie, you can send data from your movie to the database.
Flash movies can accept user input and send the data to a server.
Built-in components make it easier and faster than ever before to build
interactive elements that do not require an advanced knowledge of
ActionScript. Your forms have the potential to be much more engaging
with animation or sound additions. You can also use this technology to
track user progression throughout your site and send the information to a
database.
With the proper server-side software, you can produce multiuser interactivity.
Since Flash Player 5, you have been able to use XML sockets for
transmission of data between a socket server and one or more connected
Flash movies. XML operates much faster when using Flash Player 6 and
later. Also, with the release of Flash Communication Server MX (now
Adobe Flash Media Interactive Server), developers now have a consistent
API to create multiuser applications. Remote Shared Objects, one of the
mechanisms employed by Adobe Flash Media Interactive Server, use an
efficient and optimized binary protocol, Real-Time Messaging Protocol
(RTMP), to broadcast data updates.
A wide range of external runtime assets can be loaded into a Flash movie.
You can create a master Flash movie and then load external files into
it for each individual area of the interface or presentation. Using this
method of asset management enables you to delegate tasks in a team
production environment, where several designers and developers can work
simultaneously. This workflow also enables you to create byte-optimized
large Web sites and applications, in which assets are downloaded on an
"as needed" basis while the user interacts with the Flash movie.
External assets include all image formats supported by today's Web
browsers, including standard and progressive JPEG files, GIF files, and
PNG files. You can load MP3 and AAC audio files, as well as FLV or
H.264-encoded video content. While image assets are always progressively
downloaded, audio and video assets can be streamed in real time.
NOTE
A progressive download is
any file type that can be used before the Flash Player actually receives
the entire file. Progressive downloads are usually cached by the Web
browser. You can stream MP3 files with the use of Adobe Flash Media
Server or Adobe Flash Media Interactive Server. This server uses true
streaming of all audio and video content, where nothing is cached by the
Flash Player or the Web browser.
Creating components in Flash CS5 enables developers to form reusable template interfaces or assets for Flash movies.
The components that ship with Flash CS5 greatly reduce the development
time of interfaces that require common UI elements such as text input
areas and radio buttons. Components can be easily customized in the
Properties panel, and many settings can be changed without the use of
ActionScript.
NOTE
Many of the components
that ship with Flash CS5 use the .swc file format in Flash documents.
Components can be precompiled, which means that you cannot edit their
internal elements or code unless you have access to the original source
.fla file used to create them.
The
Flash Player is available on many different platforms and devices,
including Windows, Macintosh, Solaris, Linux, OS/2, SGI IRIX, Pocket PC,
and many mobile devices. Refer to www.adobe.com/shockwave/download/alternates
for the latest version available for these and other alternative
platforms. Just about any Web user can view Flash content by downloading
and installing the latest version of the Flash Player.
Movies can be developed to run outside of the browser environment.
Projectors are Flash movies running from an embedded player, so you do
not need a browser to view or use them. They can be burned onto DVDs or
CD-ROMs, or saved to any other media-storage device. You can also use
the new Adobe AIR framework to deploy Flash content as an installed
application on the user's computer.
Like HTML pages, content from Flash movies can be sent to a printer. The PrintJob
API in Flash Player 7 or later ActionScript language offers you the
capability to precisely control the layout of the printed page. The
quality of the printed artwork and text from Flash movies is remarkable.
You can send multiple pages to the printer at once and create content
on-the-fly for the printed output.
These are only some of the
things that Flash movies can do. Regardless of the intent of your
production, verifying the use of this software is usually a good idea
during preproduction. In the following subsection, I consider situations
in which you may not want to use Flash to develop your content.
2.2. When not to use Flash
If you're enthusiastic about
Flash and have used Flash for previous Web projects, you can easily
develop a bias in favor of Flash. It may even be hard to consider that
other options could be better for development. Knowing which technology
is best for each solution will assist you in offering the best-quality
products to your clients.
Flash movies play in a Web browser, using a plug-in.
Despite the near ubiquity of the Flash Player, there are still some
users who may need to download it. If you're using Flash CS5 to create
Flash Player 10 movies, many visitors trying to view your site may need
to update their players. It is also important to keep in mind that some
workplaces or institutions (such as schools) will not allow their
workers or students to install applications that include plug-ins and
ActiveX controls on the systems. Further, with the increase of mobile
device Web browsing, people are becoming increasingly likely to visit
your Web site on a smartphone or other Web-enabled device — many of
which support only Flash Lite or no Flash Player at all (the iPhone, for
example, cannot play browser-based Flash content).
The type and version of a Web browser can affect the functionality of a Flash movie.
Although internal ActionScript code should largely remain unaffected by
browser brand and version, some scripting and interactivity with HTML
documents (using JavaScript or VBScript) may be browser dependent.
Later releases of Flash Player 6 and all subsequent releases of the Flash Player now support the WMODE
(Window Mode) parameter of Flash content across most browsers —
previously, this parameter was supported only by Internet Explorer on
Windows. If you've ever seen transparent-background Flash ads that whiz
across the browser window, then you're already familiar with the use of
the WMODE parameter.
|
|
Web browsers do not automatically redirect to alternative content if the Flash Player is not installed. You, as a developer, are required to create detection mechanisms for the Flash Player.
3-D file formats cannot be directly imported or displayed in Flash movies.
To achieve 3-D-style effects, frame-by-frame animation or ActionScript
is required. Adobe Director, however, has built-in features for
importing, creating, and manipulating 3-D content.
You can use the
Papervision 3-D framework to load and display 3-D objects in a Flash
movie.
|
|
Typical search engines (or spiders) have a difficult time indexing the content of Flash movies.
When you make Flash-based sites, you should create some alternative
HTML content that can be indexed by search engines. If you simply place
Flash movies in an otherwise empty HTML document, your Web site will not
likely be indexed.
Flash CS5 can add XMP (eXtensible
Metadata Platform) data to SWF files. Search engines can index this
metadata to provide better placement of your Flash content within search
results. Go to the Publish Settings dialog box (File => Publish Settings), click the Flash tab, and then click the File Info button to add the extended metadata to your content.
|
|
Flash sites were never meant to completely replace text-based HTML sites.
For sites largely based on textual information with basic or simple
graphics, there may be little point to using Flash. Selecting and
printing text content from Flash movies is not always as intuitive as
that of standard HTML sites. At this time, the Accessibility features of
Flash Player 6 and later are supported only by Internet Explorer for
Windows when used in conjunction with a select number of screen readers.
A greater number of assistive technologies, however, support HTML
pages.
You can add right-click
menu support to HTML-styled text containing URL links. For example,
this feature of Flash Player 7 and later movies enables a user to open a
link in a new browser window.
|
|
In many circumstances, HTML is quicker, easier, and cheaper to develop than Flash content.
There are many established applications supporting HTML development,
and clients can tap an ever-increasing designer and developer base for
cheaper and competitive pricing.
Of course, there are always
exceptions to any rule, and these suggestions should be considered as
guidelines or cautions to be examined before you embark on any Flash
development. In the following subsection, you examine other tools used
to create multimedia content.
3. Alternative methods of multimedia authoring
Now let's focus on Flash's
competition in the multimedia authoring arena. This section is not
intended to give you a comprehensive background on these technologies.
Rather, I seek simply to give you some context of Flash as it exists in
the rest of the multimedia world.
3.1. Dynamic HTML
Dynamic HTML (DHTML) is a
specialized set of markup tags that tap into an extended document
object model (DOM) that version 4 browsers or later can use. Using <layer> or <div>
tags, you can create animations and interactive effects with
Web-authoring tools ranging from Notepad or TextEdit to Adobe
Dreamweaver. You can actually combine Flash content with DHTML to create
Flash layers on top of other HTML content. One problem with DHTML is
that Mozilla-based browsers and Internet Explorer on Windows do not use
it in the same way, but this problem is becoming more marginal as new
versions of these browsers are released. Usually, you need to make sure
that you have a specialized set of code (or minor modifications) for
each browser type.
Flash Player 7 and later
movies support the use of cascading style sheets (CSS) to share
formatting specifications from DHTML pages with Flash text fields.
|
|
3.2. XML and XSL
XML stands for
eXtensible Markup Language. XML looks like HTML, but it's really a
language that can manage structured or related data, such as pricing
information, contact information, or anything else that you would store
in a database. XSL stands for eXtensible Stylesheet Language. XSL
documents apply formatting rules to XML documents. Together, XML and XSL
documents can create interactive data-driven Web sites. Although most
browsers in use today can read and display XML and XSL documents, some
older browsers do not support these formats. The Flash Player can be
installed on just about every graphical Web browser available,
regardless of the browser's version. As such, you can potentially reach
more users with Flash content than you can with XML and XSL content.
3.3. Adobe Director
Originally, Macromedia's flagship product, Director, was the
multimedia powerhouse authoring solution. Since its inception in the
1980s, Director has had the benefit of many years to establish its
mature interface and development environment. Director can integrate and
control many media types, including video, audio, and entire Flash
movies. Director also has an Xtra plug-in architecture, which enables
third-party developers to expand or enhance Director's capabilities. For
example, you can use an Xtra plug-in to tap hardware-specific input and
output, such as a motion detector or pressure-sensitive plate connected
to the computer's serial port. Director 8.5 and later have added true
3-D modeling support. You can create Shockwave games with textured
models and lighting effects! However, there are two major drawbacks to
Shockwave Director: It requires a larger download for the full player
installation, and the player is available only for Windows and Macintosh
platforms. Director remains a popular authoring tool for CD-ROM and
DVD-ROM development.
3.4. Macromedia Authorware
Authorware, like Flash, was
originally a technology developed by another company and then bought by
Macromedia (and now Adobe) to add to its software lineup. Since the
initial acquisition, Macromedia has significantly developed the features
and capabilities of Authorware. It is an authoring application and a
companion plug-in technology, with similar audio/video integration
capabilities as Adobe Director. However, Authorware was developed with
e-learning in mind. You can use it to structure training solutions and
monitor student learning. I mention Authorware as a potential competitor
to Flash because many Flash developers use Flash to create Web-training
modules that interact with server-side databases.
3.5. Scalable Vector Graphics
The Scalable Vector Graphics
(SVG) format is widely supported by some of the largest names in the
industry, such as Microsoft and Adobe. This format has even been
approved as a graphics standard for the Web by the World Wide Web
Consortium (W3C), whose purpose is to form universal protocols regarding
Web standards. SVG is much more than a graphics format; it is also an
XML-based development language. Some Adobe tools, including Adobe
Illustrator, can create files based on this technology. Adobe also
creates the plug-in for using this file format on the Web, but the W3C
is pushing for all browsers to provide built-in support for the format
so that a third-party download is unnecessary. This may be necessary if
SVG is ever to become a viable content format because Web surfers have
been quite slow to adopt the SVG plug-in. For more information on this
topic, you can refer to www.w3c.org/Graphics/SVG and www.adobe.com/svg.
3.6. Microsoft Silverlight
In 2007, Microsoft
launched the first version of the Microsoft Silverlight plug-in, which
closely matches the capabilities of the Flash Player plug-in.
Silverlight 1.0 relies largely on a JavaScript-based scripting language
to create interactive content with a tool such as Microsoft Expression
Blend 2. Silverlight can play video content with the addition of the
Windows Media Player plug-in for your Web browser. While Silverlight
technology has yet to take hold with most Web sites, it is quickly
gaining mind share with Web developers looking to add advanced
data-driven capabilities to their online projects.
3.7. Microsoft PowerPoint
PowerPoint is usually
considered a tool for making offline presentations to show in business
meetings, conferences, and seminars. What is perhaps not as well known
is how PowerPoint is sometimes used online for presenting such content. A
PowerPoint viewer plug-in enables your browser to handle these files,
and PowerPoint can export HTML versions of slide shows. Although
PowerPoint enables anyone from a designer to a programmer to easily
create slide-show presentations, Flash can be considered a more robust
tool for creating dynamic, high-impact presentations.
NOTE
More and more designers
who use Apple Mac OS X are choosing to create PowerPoint-like
presentations in Apple Keynote, a product available in Apple's iWork
bundle.
3.8. SMIL, Real Systems RealPlayer, and Apple QuickTime
SMIL (Synchronized
Multimedia Integration Language) also looks a lot like HTML markup tags.
SMIL enables you to layer several media components in SMIL-compatible
players such as the Real Networks RealPlayer and the Apple QuickTime
Player. You probably have seen SMIL at work when you load RealPlayer and
see the snazzy graphics that compose the welcome screen interface. With
SMIL, you can layer interactive buttons and dynamic text on top of
streaming video or audio content. You may not even think of SMIL as a
competing technology, but rather a complementary one — Flash can be one
of the multimedia tracks employed by SMIL! You can even use Flash as a
track type in QuickTime, without the use of SMIL. When Flash 4 was
released, Macromedia and Apple announced QuickTime Flash movies, which
enabled you to create Flash interfaces that layer on top of audio-video
content. The RealOne Player also plays "tuned" Flash files directly,
without the use of SMIL. A tuned Flash file is weighted evenly from
frame to frame to ensure synchronized playback. Note, however, that
tuned files usually need to be strict linear animations without any
interactive functionality.