Apache – Linking directly to a SWF, what are the downsides

apache-flexembedflash

Usually Flash and Flex applications are embedded on in HTML using either a combination of object and embed tags, or more commonly using JavaScript. However, if you link directly to a SWF file it will open in the browser window and without looking in the address bar you can't tell that it wasn't embedded in HTML with the size set to 100% width and height.

Considering the overhead of the HTML, CSS and JavaScript needed to embed a Flash or Flex application filling 100% of the browser window, what are the downsides of linking directly to the SWF file instead? What are the upsides?

I can think of one upside and three downsides: you don't need the 100+ lines of HTML, JavaScript and CSS that are otherwise required, but you have no plugin detection, no version checking and you lose your best SEO option (progressive enhancement).

Update don't get hung up on the 100+ lines, I simply mean that the the amount of code needed to embed a SWF is quite a lot (and I mean including libraries like SWFObject), and it's just for displaying the SWF, which can be done without a single line by linking to it directly.

Best Answer

Upsides for linking directly to SWF file:

  • Faster access
  • You know it's a flash movie even before you click on the link
  • Skipping the html & js files (You won't use CSS to display 100% flash movie anyway)

Downsides:

  • You have little control on movie defaults.
  • You can't use custom background colors, transparency etc.
  • You can't use flashVars to send data to the movie from the HTML
  • Can't use fscommand from the movie to the page
  • Movie proportions are never the same as the user's window's aspect ratio
  • You can't compensate for browser incompetability (The next new browser comes out and you're in trouble)
  • No SEO
  • No page title, bad if you want people to bookmark properly.
  • No plugin information, download links etc.
  • If your SWF connects to external data sources, you might have cross domain problems.
  • Renaming the SWF file will also rename the link. Bad for versioning.

In short, for a complicated application - always use the HTML. For a simple animation movie you can go either way.