Hacks #86-96

Since its inception, Flash has been intimately tied to web browsers. Granted, Flash can create Projectors that use the Standalone Player to play SWF files, but most Flash content is viewed through web browsers, courtesy of the ubiquitous Flash Player browser plugin (for Internet Explorer on Windows, it is an ActiveX control).

Ironically, part of the world's love-hate relationship with Flash is based on misconceptions. Many web developers and users don't realize the extent to which Flash works with browsers. In this chapter, we'll see how to integrate Flash with standard browser conventions, such as the Back button [Hack #94], and search engines like Google.

This chapter also discusses a unique way to check for the Flash Player browser plugin [Hack #87] . If the Flash Player is installed, it can periodically check for Player updates on the macromedia.com site. As described in the Macromedia Flex documentation Managing Flash Player Auto-update (http://livedocs.macromedia.com/flex/1/flex_docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flex_Documentation&file=38_dep42.htm#wp154069) the auto-update settings can be configured via an mms.cfg file in the user's home directory or via the user settings as described next.

Security and privacy are important to Flash's acceptance as a distribution platform. Most developers are aware of the Flash context menu accessed using right-click (Windows) or figs/command.gif-click (Macintosh). The most important option on this menu is Settings, which opens the Macromedia Flash Player Settings dialog box. This dialog box has tabs that allow the user to manage settings for Privacy, Local Storage, Microphone, and Camera access. However, few developers and even fewer users realize that additional Flash Player settings are available only via Macromedia's web site. Users can access the Settings Manager (http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager.html) using the Advanced button on the Privacy tab of the Settings dialog box. Once at Macromedia's site, the user can configure additional settings regarding privacy, storage, security, and update notifications.

As has been the case for many years, browser standards and compatibility continue to fluctuate as new versions of various browsers are released for the major operating systems. Legal influences often trump technical ones, however. A company called EOLAS (Embedded Objects Linked Across Systems) has several patents covering playing content in a browser. You may have heard of the EOLAS patent case in which Microsoft was sued to prevent it from seamlessly launching the Flash Player ActiveX control in Internet Explorer for Windows. At the time of this writing, Microsoft has won a preliminary ruling to invalidate the patent, but the litigation is still pending. See http://www.eolas.com/news.html for the latest news on this issue from EOLAS. Search http://www.microsoft.com for the word "EOLAS" to find any implications of recent rulings to Internet Explorer. See http://www.macromedia.com/devnet/activecontent for any issues raised for Flash and other rich media developers. Any late-breaking news will be updated on this book's site, as noted in the Preface.

It remains to be seen whether Microsoft will ultimately prevail, but we assume it will. Although it is not implemented here, we researched a possible workaround even if EOLAS prevails. The patent claim revolves around the use of plugins that work seamlessly with the browser. When <object> and <embed> tags that require the browser to load non-HTML content (such as a Flash SWF) are found on a page, the process of loading the Flash Player is largely transparent to the user and developer. If the EOLAS patent is upheld and Microsoft doesn't license the patent, Internet Explorer will be prohibited from loading the Flash Player plugin directly. The solution is to use non-plugin-based technology (such as JavaScript) to load non-HTML content, including loading the Flash Player to play SWFs. For convenience and sanity's sake, let's hope it doesn't come to that.

Of course, the Flash Player is not just for web browsers. There is also the Flash player for PocketPC, Flash Lite for cell phones, and hardware-specific versions of the Flash Player for a number of other devices (see http://www.macromedia.com/devnet/devices). Note that the version of the Flash Player supported by most mobile or standalone devices will lag behind the latest version of the Flash Player for desktop PC web browsers. Most non-browser-based versions of the Flash Player support either Flash 4, 5, or 6 features, whereas the latest Flash Player for Macintosh and Windows browsers is Flash Player 7.

The Flash authoring tool is not open source, but the SWF format is public. Third parties can license the Flash SWF file format for free (see http://www.openswf.org and http://www.macromedia.com/software/flash/open/licensing for more details). Not surprisingly, a number of third-party tools play SWF files in nonstandard environments or produce SWF output without requiring the Flash authoring tool [Hack #29] .