|[ LiB ]|
Not only will this be a short history, but the history on which this history is based (the Internet) is short. In fact, personal computers have only been around for a few years . I have to mention the story of a student of mine who was previously unaware of the fact that personal computers were relatively new. He just figured they had been around foreverrelative to his young age, they had been. Apparently, he had seen a television program about the start of Apple and Microsoft and was amazed that these machines he had grown up with were scarcely older than he was. The point of this digression is that I don't know your background. As a way to show where Flash fits, I'm going to lay down some historical markersmany of which you may already be familiar with.
Considering that an Internet application intends to achieve many of the same tasks as any computer application, it's probably good to look at software history generally . The concept of a "killer app" is worth mentioning here. The idea is that any system (for instance, hardware or operating system) will only succeed provided there's some killer app an application so desirable that it warrants investing in the underlying operating system. A perfect example is Visicalc (the first computer spreadsheet program shown in Figure 1.1). Visicalc helped make the Apple II an attractive system. Perhaps even more profound is how various systems or standards have fallen by the waysidenot because the technology was lacking, but because no software attracted people. For instance, several video game consoles have failed because they lacked good games .
This discussion returns to killer apps as applied to the Internet shortly, but first it's important to consider a minor revolution that preceded the Internet's popularity. In the early 1990s, the multimedia computer was born. While trade associations were attempting to define exactly what qualified as a multimedia-capable computer, the following few basic technologies were making it happen:
Color video displays capable of displaying 16 or even 256 colors
CD-ROMs that not only contained (what was considered ) mass quantities of data but could stream data in factors of 300 kilobits (double-speed or 2X)
These three hardware features, coupled with Apple's digital video format QuickTime (and later, Microsoft's Video for Windows), made many believe that "multimedia" might become the next "plastics" (that is, a sure bet for a moneymaking industry). Considering the CD-ROM title Myst sold millions of copies, you could say there was a multimedia revolution.
This information is useful for more than just boring future grandkids. It's mentioned here because it defines what makes a compelling experience. Notice the three big factors that defined a multimedia computer: sound, color graphics, and data access. (I know that I was hooked when I first saw the CD-ROM Just Grandma and Me come to life before my eyes.)
Multimedia (now, replaced by the term rich media ) is effective because it uses multiple channels to communicate. This makes it easier to fashion the appropriate message and increases the likelihood that the message will be understood (because different people respond to different stimuli). Some people are visual learners, others auditory, and still others are tactile. Naturally, Flash can communicate in all of these ways.
For even more nostalgia, you may find the Multimedia Personal Computer standards (MPC, MPC-2, and MPC-3) interesting. The idea was for hardware manufacturers to include a minimum set of features so that software makers could easily require minimum system configurations. I don't even know what the MPC standard was, but for kicks here are MPC-2 and MPC-3 standards.
25MHz Intel 486SX
540MB disk drive
VGA (256 colors)
Although I'm told it's not true, it sure seems like everyone is "on" the Internet. It's unclear whether the killer app that made the Internet what it is was email or the browser (although it sure wasn't pop-up ads). The important fact is that you can usually depend on users being connected.
Another reasonable expectation is that users have a modern browser. Each generation of browser has additional features making it possible to perform more and more tasks. Believe it or not, the first browsers couldn't even display JPGs without a plug-in. The idea of a plug-in is that if some third party wants to employ a currently unsupported technology or media type, the third party can write a plug-in that the user then needs to install. The bad part is the plug-in must be distributed and users have to manually install it; the good part is that popular plug-ins may eventually get native support by the browser. At the core , media displayed by a plug-in is effectively running like a separate applicationit just happens to appear in the browser's window.
Macromedia prefers to call it the Flash Player, but it's basically a plug-in. Unlike any other plug-in in history, however, the Flash Player has reached more than half a billion users. By far, the Flash Player is the most accepted plug-in. Although the claim of "98 percent of all Internet users" includes older versions of the Flash Player, the adoption rate is very fast. For example, Flash Player 6 reached more than 80 percent in only 12 months. It's a snowball effect the way the new player's growth rate continues to accelerate. With more compelling Flash applications (oh, and traditional sites), there's a greater demand for the software necessary to run them. That is, your killer Flash application could very well fuel the demand for the free Flash Player.
If you want statistical evidence of these claims, just check out www.macromedia.com/software/player_census/flashplayer. For a sense of just how frequently the Flash Player gets installed, go ahead and visit that page now to see the growth since the day I wrote this chapter and grabbed Figure 1.2 from the Macromedia site.
Other plug-ins have also contributed to making browsing a better experiencefor instance, Adobe Acrobat Reader for viewing documents, Apple QuickTime Player for high-quality video, and RealMedia Real Player for streaming video. There's also Macromedia Shockwave to play Director MX applications, which, despite being underappreciated, has as a better penetration than Real Player or QuickTime. Perhaps the interesting fact is that Flash isn't replacing these other technologies, but is instead slowly picking away at some of their unique advantages (video and streaming video to name just two).
Flash has been typecast as an animation tool. Although it is great for that, with more and more sophisticated functionality being added, it's trying to break away from that reputation. Attempting to become the rich Internet application (RIA) standard is more than just a marketing ploy. It's really just a matter of letting developers see what's possible. This section examines where Flash stands in comparison to its apparent competition.
The one technology that's similar to Flash in both capability and penetration is Java. First, realize there's Java the language (used behind the scenes on the server) and then there's client-side Java (running in the browser). As a language, it's perfectly suited for many uses. On the client side, however, it's lacking. Although Java can achieve great tasks, its significance is hindered by its limits. Problems include the fact it can take an enormous amount of work to build a client-side Java app, it takes a long time to get up and running when a user loads a Java app, it can quickly use up your computer's resources, and it often behaves differently on different operating systems. Hey, I don't mean to bury client-side Java, but the fact is that Flash has delivered on promises that Java never could. (Flash is easy to build, lightweight, relatively fast performing, and consistent.)
Macromedia has a confusingly similar product to Flash called Director. Director has been around much longer, and therefore its roots are in producing applications that run on the desktop or CD-ROM. The Director browser plug-in is called Shockwave. In many ways, the capabilities of Flash and Director overlap. However, Director excels in several key areas: performance, media support, and features useful in applications made for the desktop. The fact that people's computers continue to improve reduces the significance of Director's performance advantage. Also, the new Flash Players continue to get faster.
In the area of media support, Director can display (at runtime) nearly any native media format. Flash can display only JPG and play only MP3 audio or FLV video. In addition, Director can display true 3D graphics while tapping into a computer's 3D video acceleration. That is, not only can you display 3D models and animations, but you also can use script to change camera angles, object placement, or even lighting.
Finally, Director is made for desktop applications. Director includes several built-in features and ways you can extend Director native functionality through third-party xtras. Pretty much anything any application can do, Director can too. For instance, I've made applications that print high-resolution catalogs or automatically update themselves via the Internet.
That said, Flash does have some advantages over Director, including the following:
Support to both read and write XML (whereas Director can only read it).
A younger and more streamlined language. (Although the Director Lingo language is perfectly capable, it is hindered by a patchwork of changes.)
The Flash plug-in is at about 98 percent of market, whereas Director Shockwave is at roughly 63 percent.
The thing is, you can embed Flash SWFs inside Director and effectively get the best of both tools. Unfortunately, Director MX currently only supports Flash Player 6 SWFs.
You can find more comparisons between Flash and Director at www.macromedia.com/software/director/resources/understanding.
Obviously, Flash isn't HTML. There's no point comparing Flash applications to static HTML (that is, individual HMTL pages coded by hand). However, as you'll learn in Chapter 3, "Technology Overview," an application server can dynamically generate HTML on-the-fly . That is, based on user input or timely data, the application server will produce a custom-looking HTML file in a fraction of a second. To users, it looks like a page created just for them. In many ways, this is a Flash application's real competition.
Nearly all Internet applications use an application server behind the scenes (that is, on the server side). When you investigate flight schedules, purchase a book, or bid at an auction, chances are good your request is being sent to an application server, which then triggers a follow-up action and generates a response in the form of a new page that you view. It can be a bit complicated to build, but the worst part (in which Flash may be able help) is that the user experience may be lacking. For example, you might fill in a form with 10 different options and click Submit only to find that nothing matches your request. You then go back to make another tryeach time sending a request to an application server, which then generates a complete HTML page that must download.
Although Flash has the reputation of being a bandwidth hog, when you design an effective application, it's actually possible to make Flash more bandwidth friendly than HTML! For example, it's easy to send requests to an application directly from Flash. When the response arrives, Flash needs only to redraw the appropriate parts of the screen. It doesn't need to reload the whole page (meaning a less-disruptive experience and less bandwidth).
When Flash 5 came out, programmers went wild with the new full-fledged scripting language ActionScript. Then Flash MX came out, exceeding everyone's expectations as to how many features could get crammed into a single upgrade. Now Flash 2004 introduces so many advances it boggles the mind. If nothing else, this progression proves that Macromedia is targeting application developers. I don't think there's any intent to alienate graphic designers and animators, but because they've already adopted Flash there's less potential growth in that area. In any event, Flash 2004 and the Flash Player 7 are an application developer's dream.
The inclusion of ActionScript 2 will surely attract hard-core programmers (although, I should note, it's not covered in detail in this book). Other features especially geared toward application development include the following:
Forced text aliasing, which enables you, by turning off antialiasing, to ensure that smaller text looks crisp.
Version 2 components that sport the new Halo skin, as well as offer improved performance and additional features. This all means you don't have to spend time developing common interface elementsthey're already built. Countless other improvements are covered in detail in Chapter 12, "Using Components."
Cascading Style Sheets (CSS) support means you have greater text layout control using a standard format (as discussed in Chapter 6, "Basic Data Exchange").
Improved array sorting speed and features that help you manage large quantities of data.
The ability to customize the context menu (right-click) and to trap changes in the mouse wheel to give the user just one more way to interact.
The ability to respond to the user's mouse wheel. For example, you can scroll a display when they scroll their mouse wheel.
Text metrics, giving you more information about where text appears.
A MovieClip Loader object that simplifies the process of displaying external media.
The addition of the <img> tag to embed images or SWFs within your text displays.
Native support for Flash Video files (FLV) and the ability to produce video using nearly any video editor (if you buy Flash Pro).
Plus countless other features that, although cool, may not apply directly to applications.
In a simplified way, Flash is the pretty face you can put on any data. To be a little more respectful, I should say Flash can make complex data more digestible. Giving users access to advanced features and infinite sets of data is fine, but it must be presented in a way that makes it easy for them to find what they want. This is where Flash fits in.
Flash is appropriate for any application where images, sounds, or animation can support and enhance a message. Again, it's not as though you're spicing up something that's otherwise boring. In fact, if a piece of multimedia is not supplementing a message, it is most certainly distracting from it. Chapter 2 looks at many such considerations. If a media element can help a message, however, you should include it. Flash is great at supporting media such as audio, video, animation, and text.
I think an overly simple definition of a Flash application is when Flash appears by itself in its own window. It's actually possible to integrate Flash into HTML frames or tables. That is, Flash doesn't have to take up the whole screen. This approach can be a bit more work, and, frankly, there are fewer and fewer reasons to consider it.
Nearly every previously justifiable reason to avoid Flash has been addressed. For example, HTML will automatically "flow" as you change your margins. Although Flash can be set to scale, it's not terribly useful as text gets tiny when the window shrinks. People tend to design their Flash apps to a fixed window size (which is certainly easiest ). However, Flash has an onResize event for which you can write code that rearranges the screeneffectively behaving like HTML. Other show-stopper limits of Flash have been addressed, such as making content accessible to people with a variety of disabilities (covered briefly in Chapter 2). My point here is that before you avoid Flash for a specific reason, make sure the issue hasn't been addressed.
Finally, one of the most subtle solutions Flash can deliver is putting content in a branded display. If all you want to display is a video clip, for example, you can choose from a variety of solutions. However, only Flash makes it possible to completely control the look and feel of the interface. (You could argue this is bad because the user would have to "learn" your interfacebut only if you do something unorthodox or unintuitive.) Actually, users will always see "About Macromedia Flash Player" if they right-clickbut that's it. Every other attribute of the viewing experience can include your branded look. Branding is an almost subconscious way to emphasize a message.
One last note about where Flash fits in. There's a new home for your Flash applications called Macromedia Central. In a nutshell , Central is a browser that just plays Flash movies. There are additional features and capabilities that you don't get in browser-based Flash movies when they run in the Central desktop player. Additional features are supported, such as background tasks (for instance, check a stock price even when the user isn't actively using your app) and the ability to deliver a compelling experience even while offline. Finally, Central provides an easy way for you to distribute your applications (and charge for them if you want). Central pops up in several places throughout this book, but not in its own chapter. The reason is that a Central app is really just a Flash app that was designed for and deployed using Central. Anyway, check it outI guarantee it will be the next big thing provided someone makes a killer app for it.
|[ LiB ]|