As popular as it is, Macromedia’s Flash has always been a stranger to me. I know more-or-less how to use it. Since I knew Macromedia Director well, it was relatively easy to learn, but I never came across a situation where I felt that Flash would be the most effective tool for the task. When I look at Flash sites on the Web, I feel as though people use Flash just because they want to, not because it is appropriate.
The biggest problem that I see with Flash is that it is embedded into HTML, which makes it a container within another container. This causes all sorts of inefficiencies, scrolling being the biggest one. The concept of embedding makes sense only if something actually needs to be embedded. Here is a true example of embedding: A QuickTime or RealVideo embedded in your HTML document which describes what the video is about. By contrast, the majority of Flash sites pretend as though they are their own applications, when in fact they are embedded. In other words, technically all Flash sites are embedded, but they try to pass as stand-alone applications. This pretense causes a certain amount of friction, and unnaturalness in the user experience. To minimize this problem, most Flash designers pop-up clean windows of their own, without a navigation bar, an address bar, or a menu bar. This strategy gives you the illusion of your site being an application of its own, but after all, it is only an illusion. Flash, being an embedded applet in its true nature, cannot act fully as a native application. It cannot escape the limitations of an embedded applet.
This solution of pop-up windows is also a problem of its own. Pop-up windows should be used only when they are appropriate. A good example of it is when the flow of navigation, or the flow of information, must temporarily diverge. A piece of help information in a context of filling out forms is a good example. Popping up a window to display a Flash site, on the other hand, has no other purpose than to get around a technical problem. In other words, it is done for the designer/programmer, not for the users. As little as it may be, it creates a certain amount of friction. It interrupts the flow of navigation and information for the users.
Unfortunately, not using a pop-up window to display a Flash site is even worse. Here, we have a problem with conflicting navigational controls and scrolling mechanisms. Since Flash is not capable of dynamically resizing itself to accommodate a varying amount of information to be presented, it must use its own scrolling mechanism along with the scrolling mechanism of the browser. This dual-scrolling situation is only necessary from the technical point of view, which means that you are imposing this friction on users, not out of a true necessity, but out of an awkward use of technology.
This inability of Flash to dynamically resize itself poses a lot of other problems. Since you, as a designer, want to avoid a dual-scrolling situation, you try to design your Flash site to fit everyone’s computer monitor without scrolling. Scrolling is one of the main paradigms of the window-based operating systems. Everything is built around it. There are many features of user-interfaces that accommodate it; scrolling wheel on a mouse, for instance. Avoiding to use the scrolling mechanism of the operating system is like avoiding to use the pedals when riding a bicycle. When you can have a virtually infinite amount of screen space with the use of scrolling, Flash designers work with a fixed amount of space that caters to the lowest common denominator of computer screens, which is currently 800 x 600 for most designers. On top of this awkwardness, the users are often forced to use a small scrolling window within this already small screen real estate.
Another big problem with Flash: Presenting text. The biggest of all: You cannot print. You cannot link to or bookmark a specific piece of article within a Flash movie, since the URL always remains the same. The “Find” function does not work. You cannot resize text for the ease of reading. On most Flash sites, the text window is tiny and therefore requires frequent scrolling with an awkwardly implemented scroll bar. Clearly, Flash is not the tool for presenting text.
Flash does not handle presenting of raster images like photos well either. Since it is incapable of downloading images dynamically, you must embed all images into your Flash file. The users must download all images to their computers whether they need them or not. Because of this problem, the quality of images embedded into Flash files is often very poor. To get around this problem, some designers break up the Flash files, or use Flash Generator, but the fact that you have to work around this simple issue is already silly. Apparently the future versions of Flash will support dynamic loading of images, but it will take a while before we can rely on the majority of the users to have the latest Flash player installed on their computers. So, Flash isn’t good for presenting images either.
Some sites use Flash to create a sophisticated site navigation system, such as pull-down menus, tool-tips, context-sensitive menu, and sub-menus, but even for this, Flash does not make sense if you consider the fact that you can do the same with DHTML which has a higher compatibility.
The strength of Flash lies in its ability to deliver vector-based animations fast and efficiently. At least for now, this is a major advantage of Flash, but even this is just a matter of time. If what you want to present is a piece of animation, a full-motion 30FPS, 720 x 486 digital video is undeniably better aesthetically. It is just that most people do not have the bandwidth or fast enough computers to run it. Flash in this sense is just an interim solution for these technical limitations.
If you want to do some serious programming, Flash isn’t the tool either. It falls behind Director, ActiveX, and Java Applets, although it has a higher compatibility than some of them.
So, what is Flash good for anyway? Ironically, it seems that it is only good for making something flashy. Or at least this is how it is used 99% of the time. For this, I must admit that it does a great job. If you need to get the attention of the users, there is no better way, but personally I’m getting too old for this.