Flash Embedding Cage Match

by Bobby van der Sluis

54 Reader Comments

Back to the Article
  1. “In search of the solution, Geoff Stearns and I have teamed up. Instead of rewriting UFO and SWFObject, we are working on a single new, standards compliant and completely unobtrusive solution that will eventually replace both libraries.” Hell yeah!
    Copy & paste the code below to embed this comment.
  2. As I read through this article, I felt myself getting more and more discouraged - until I read this: “In search of the solution, Geoff Stearns and I have teamed up. Instead of rewriting UFO and SWFObject, we are working on a single new, standards compliant and completely unobtrusive solution that will eventually replace both libraries.” Hell yeah!
    Copy & paste the code below to embed this comment.
  3. Teaming up with Geoff sounds like a cunning plan!  Are we able to register for email updates on SwfFix at all?
    Copy & paste the code below to embed this comment.
  4. Cola: No email updates right now, but there’s a dev blog at http://www.swffix.org/ that has an RSS feed you can subscribe to.
    Copy & paste the code below to embed this comment.
  5. I’m quite glad to read several things in this article.  First off, thanks for being willing to self-criticize.  Too many people in this business feel that what they’ve done is the be-all, end-all solution.  Your ability to look at what you’ve done and say “nope, its not quite good enough” is appreciated. Moreover, I’m glad to see you guys teaming up to improve the situation.  I’ve been using UFO for a while now and I’ve always justified the lack of support for people with Javascript turned off by saying that in (what I imagine) would be nearly all cases where Javascript was not enabled, flash would not be enabled either.  Sadly, I’ve done no real research to see if that view holds water. Looking forward to seeing this SWFFix project gain traction within the community.  Thanks for (what I believe maybe the first) good, concise explanation of what is wrong with flash, object, and embed.
    Copy & paste the code below to embed this comment.
  6. Perhaps many ALA readers are unfamiliar with jQuery (check it out at http://jquery.com). For those who are, there is a plugin by Luke Lutman (http://jquery.lukelutman.com/plugins/flash/) that seems to address most of the issues raised in this article. I would love to hear Bobby’s impression of it.
    Copy & paste the code below to embed this comment.
  7. Thanks for the article Bobby, SWFFix sounds like it will be a great product. One challenge I have with embedding flash is when the flash has some transparency and has to overlay on top of the HTML. When the flash movie is covering HTML in firefox, I can’t interact with the HTML at all. This is when setting the wmode parameter to “transparent”. Are you familiar with any fixes to this issue at all? Apologies if its outside the scope of this article. Thanks,
    Dave
    Copy & paste the code below to embed this comment.
  8. I’ve already found a similar solution at
    http://www.dgx.cz/trine/item/how-to-correctly-insert-a-flash-into-xhtml I used it for a while and it seems to work correctly in several browser and OS
    Copy & paste the code below to embed this comment.
  9. Tim: I think that the jQuery Flash plugin can be a good solution when you are already using the jQuery library. In all other cases you would add a lot of unnecessary overhead. Like the author writes in the script’s credits, it is pretty much inspired by SWFObject and UFO, which means it contains a lot of the same functionality, however it also shares the same degradation problems. When it comes to standards compliancy, it uses the embed element only.
    Copy & paste the code below to embed this comment.
  10. *Tim*: Thanks for the plug :-) *Bobby*: You’re spot on about the jquery flash plugin. I decided to go for browser support and (much) simpler code over standards compliance by using embed. That said, it would be quite simple to swap out the method that generates the embed for a (mostly) standards compliant one, if one were so inclined. One other con to UFO, SWFObject, jQuery.flash, etc. is that the swf and parameters are usually defined in the javascript—mixing behavior and content—rather than in the markup where they belong. I think that a flash microformat (to define the swf, height, width, alternate content, etc.), paired with a library like jQuery (using it’s dom selection and manipulation to find and parse the microformat) and UFO/SWFObject/jQuery.flash (for version checking and generating markup) has some really interesting “possibilities”:http://jquery.lukelutman.com/plugins/flash/example-inline-params.html (sorry for the hasty example markup).
    Copy & paste the code below to embed this comment.
  11. Where does the migration of SWFObject to SWFFix leave accompanying libraries like SWFAddress? I really like SWFAddresses ability to allow deep linking of Flash and bookmarking.
    Copy & paste the code below to embed this comment.
  12. Chad: I saw you already got your question answered on the SWFFix devblog [http://www.swffix.org/devblog/?p=6#comment-9] Quote Geoff Stearns:
    “Yes, compatibility with SWFAddress and StateManager (and any other script for that matter) will be a high priority. However, the authors of these scripts may need to make small adjustments to their scripts for them to be compatible.”
    Copy & paste the code below to embed this comment.
  13. Doh, beat me to it :)
    Copy & paste the code below to embed this comment.
  14. I included Flash video using this code - it works fine in IE 6.0 and Firefox 1.5 (without a classid). <object type=“application/x-shockwave-flash” data=“videos/video-clip-how-students-cope-with-exams.swf” width=“320” height=“280” >
       
           
      </object>
    Copy & paste the code below to embed this comment.
  15. “How can you best embed Flash content?” Don’t. Adobe does not make a flash-plugin for my computer, so I can’t watch Flash, at all. So, please, just don’t.
    Copy & paste the code below to embed this comment.
  16. Anyone know is Flash is going to support Microsoft Narrator anytime soon??
    Copy & paste the code below to embed this comment.
  17. I work with JibJab—we’ve been experimenting with creating better RSS Feeds for popular videos, photo jokes, audio jokes, etc. One issue we’ve had is with the inclusion of media players in our RSS Feeds—has anyone written anything specially tuned to that topic? Dave
    Copy & paste the code below to embed this comment.
  18. I hope that Adobe finds sexier ways to write the best embed code for us in their export movie options - so we don’t have to tool with the embed code.
    Copy & paste the code below to embed this comment.
  19. Dave: This is another reason why JavaScript only solutions are not ideal. When you use an unobtrusive scripted solution (like SWFFix) that sits on top of your markup you would enable automated tools to pick up your Flash content.
    Copy & paste the code below to embed this comment.
  20. We are getting so close to a solution and then snags always come up: Because HTML code is not capable of detecting the version of Flash another method MUST be used, such as JavaScript. I though the JavaScript solution was best so far but then I discovered this issue: All JavaScript detection methods I have seen (Including UFO) hide the alternate content with “display:none”. The problem with this is that images inside that hidden content are still downloaded first by almost all browsers.
    (proof at: http://www.quirksmode.org/css/displayimg.html) Given that most Flash replacements are just a big image (or two), having both the image and flash load together is a huge waste of bandwidth!!! Has anyone else come across this problem or seen a solution?
    Copy & paste the code below to embed this comment.
  21. Davide: You are mixing things up here. This is feedback on UFO, you cannot generalize this for all JavaScript based methods. An unobtrusive solution as described in the article (like SWFFix) will unlikely suffer from this issue, because in most cases the object tag will do the loading for you. When a user has an outdated plugin version (the odds are dependent on which player version you publish for), a DOM manipulation will force the display of alternative content instead of Flash content. In this case your initial SWF may be loaded, while it will never be displayed. We can probably not avoid this for some browsers that execute tag based functionality before a DOM manipulation on DOM load. Again, the odds for this are very low as long as you don’t publish for the latest player version. Another problem we have to tackle is how to avoid double loads. To avoid the click-to-activate active content, we have to republish existing object tags for some browsers. If we don’t wait with the replacement until a SWF has completed loading, a browser will attempt to load it twice. So instead we wait until the SWF is loaded and then do the replacement, so a browser can pull the SWF out of the browser’s cache. For SWFFix load mgt is on our agenda to be dealt with properly. When the first public alpha is available, please give it a whiz and let us if you see any problems. All open issues will be discussed on the SWFFix devblog.
    Copy & paste the code below to embed this comment.
  22. Agree with you Bobby, it is only an issue with some Javascript implementations (ie, UFO, SWFObject and the one I just built for myself). Am sure there is a way around it, just wanted to bring it up as an issue. Am eagerly looking forward to SWFfix! I will certainly be keeping my eye on that. :)
    Copy & paste the code below to embed this comment.
  23. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash. Never use Flash.
    Copy & paste the code below to embed this comment.
  24. viva sarcosos!
    Copy & paste the code below to embed this comment.
  25. Bobby and Geoff this is excellent.  I love the implementation of swfObject and with you both wrking together this is going to be the new standard for embedding.  While developing please consider the fact that all Versions of Windows vista come standard with Flash Player 7.0.19.  I am not sure why Microsoft is throwing us back a few years but the “Express Install”:http://blog.deconcept.com/swfobject/expressinstall.html should help with this but It would be nice not to have to restart the browser.  I’m sure you guys will come up with something great.  I post’ed a blog on the subject at “www.curtismorley.com”:http://curtismorley.com/2007/02/26/windows-vista-comes-with-ie7-and-flash-player-7/ Good luck guys.  I look forward to seeing the product soon.
    Copy & paste the code below to embed this comment.
  26. We use swfobject to embed the content of our swf in plain text so that search engines can pick it up and index the page(s) I would love it if the two of you would enhance the search engine compatibility while you are developing the new version. Thanks,
    “Curtis J. Morley”:www.curtismorley.com
    Copy & paste the code below to embed this comment.
  27. the swfobject.js file, i dig it, seems to work great!
    Copy & paste the code below to embed this comment.
  28. I think this article was quite insightful into the differing methods of marking up flash, however I am going to have to disagree with the author on his conclusions of the “nested-objects method.” I don’t really see any problems with the nested-objects method (assuming one uses conditional comments). I just tried it out, with the conditional comments, it validates perfectly. The only complaint by the author is that it looks “ugly” but quite frankly I find it quite simplistic, at least better than including 12kb javascript files. As for problems with authoring, that can be dealt with should your text editor have the ability to use snippets (these days, most do). Lastly I fail to see how the method could complicate server-side code, maybe someone could clear that up for me?
    Copy & paste the code below to embed this comment.
  29. Hi people! I would like contribute with a solution similar to _ObjectSwap_. I have developed a script (named jActivating) thinking on the auto-activation of active content. I would like your opinion about it, http://jactivating.sourceforge.net pd: Bobby… great article!!!!!
    Copy & paste the code below to embed this comment.
  30. I read the article from 2002 and this one about this problem and I’ve found that you don’t need two movies (the one that loads the other) to be declared. Indeed I tested a lot the examples and I found that this code: <object type=“application/x-shockwave-flash” id=“objx1”—
    width=“480px” height=“264px” data=“moviename1.swf?path=moviename1.swf”>
    </object> ... shows the moviename1 with no problem in the browsers, IE object oriented and mozilla embed oriented.
    I can’t try it on safari but I hope when the site I’m working on is up, I’ll give you the url so you could check it. If the code is flawed, I really appreciate someone tells me the technical reason for not using a code like that. I was using a code someone gave me and the code was worse looking cause it had the moviename1 called in this way: value=“movie.swf?path=moviename1.swf” It could be seen ANYWAY, don’t know why.
    As is stated before, if someone clarifies me this piece of “black wizardry” I’ll be pretty happy. Thanks in advance.
    Copy & paste the code below to embed this comment.
  31. If the method described by Stephen works in IE 6 and Firefox 1.5 (without a classid).  What browsers do not support it? <object type=“application/x-shockwave-flash” data=“myContent.swf” width=“320” height=“280” >

    Alternate Content
    </object>
    Copy & paste the code below to embed this comment.
  32. Forget using flash on your site if you want to attract people. Flash no longer works… In Mozilla it looks horrible, on some broswers it is very slow. People are no longer patient to wait for flash to load. They need things done fast… My mentor recommended me not to use flash and make it easy as possible.
    Copy & paste the code below to embed this comment.
  33. I used the following code to put Flash video player in my page and it works perfectly because it’s a small file and doesn’t need to stream. However, it won’t pass 508 validation because there’s no “element” attribute. With an “element” it won’t pass XHTML validation. Aargh. <object type=“application/x-shockwave-flash”
    data=“video/FMPlayer2007.swf”
    width=“213” height=“200”> </object>
    Copy & paste the code below to embed this comment.
  34. I recently uninstalled Flash and installed v9.  And guess what?  Half of the Flash sites on the Web are prompting me to download Flash in IE6.  Some use SWFObject, some use UFO, others use the typical user agent detection nonsense copied from Adobe’s ridiculous detection kit.  One major rub is that most of these “solutions” that attempt to instantiate ActiveX objects until they hit one that works give up at version 7! Flash Satay and other scriptless solutions are clearly not viable.  Two Flash movies for every one embedded?  No thanks. And after looking at the research for the SWFFix thing, it is clear that it will never work without using the dreaded EMBED tag.  It’s stated goal is to be a standards-based solution, so therefore it is an impossible dream.  Without EMBED, full AS/JS interaction is unsupported in half of the browsers surveyed and even if you don’t need that functionality, there is the Safari PARAM tag bug.  The latter could conceivably be worked around with user agent detection (yecch!), but that is hardly a standards-based solution. Flash is such a complete waste of time and resources, but if you must use it, then JavaScript and EMBED tags are required.  And make sure your ActiveX detection can count past 7! This ridiculous object and the brain-dead scripts that attempt to implement it have left a legacy of broken sites all over the Internet.  You know you have a problem when the company that owns the thing can’t figure it out.  Open source projects have apparently failed as well.  It is time for the Flash mavens to give up the ghost.
    Copy & paste the code below to embed this comment.
  35. On “IanAndWendy.com”:ianandwendy.com, a travel photos website, I use slideshowpro to show off our photos, and at the moment I use swfobject for swf insertion. My alt content is a plain page of web thumbnails in straight-up HTML. Works great, except,  the swf doesnt get activated (or load?) until all the alt content (in this case the html with thumbnails) is loaded.  This can delay load time substantially - especially for pages with many images/thumbnails. Any hints? I don’t know if ufo would help or suffer from the same “only progressive enhancement when the base page is done loading” problem. 
    Example page with problem: “Beijing photos”:http://www.ianandwendy.com/OtherTrips/ChinaVietnamCambodia/China/Beijing/slideshowAOG.htm The progressive enhancement works great as far as search engines are concerned, by the way, lots of visibility on all the majors. But it pisses off visitors to have to sit and wait while a page of thumbnails that they won’t even see loads. Especially the poor schlubs with 56k. Thanks, Ian
    (by the way, any other comments on my design are welcomed)
    Copy & paste the code below to embed this comment.
  36. I’m an experienced programmer, but new to web development, trying to learn all I can, soaking up everything from great sites like this. It’s really disheartening, though, to see such disparity between browser implementations and the hoops we all have to jump through to do something that should be so simple, using the great standards and tools we have (like xhtml and css). Microsoft should hang their heads in shame for developing their own standards, and causing such turmoil across the web. Perhaps a simple solution is for everyone to just use Firefox until IE is rendered useless. At least Mozilla listens to their users…(and of course IE7 fixes all the problems I’ve been reading about).
    Copy & paste the code below to embed this comment.
  37. In response to David Mark’s post [None of these things will work], I offer this reply: IMHO Flash is the predominant video format across the internet and cable television. It works very well. What’s broken are the browsers that don’t implement standards, and force developers to write convoluted code in order to get the SWF to render correctly for the majority of their users. I too, get aggravated with large, slow loading flash sites that overdo it. However, there is a lot of great flash content that really makes the internet an enjoyable place. You just have to hope you have the right browser. Perhaps one day we can get past that, and microsoft will finally step up and take the lead on standards implementation.
    Copy & paste the code below to embed this comment.
  38. Great to hear you are attempting to fix the flash embed problem with Geoff Stearns. I have been trialing UFO for a week or so now and have come across a huge problem with IE, and it seems it has not been discussed anywhere on the web. When using innerHTML with the OBJECT tag IE 6 & 7 completely rewrites UFOs OBJECT tag. This is the string before _e[removed] has been set: var FO = { movie:”/mcm_hothits/flash/hh_test.swf”, width:“457”, height:“411”, majorversion:“8”, build:“0”, allowscriptaccess:“true”, allowfullscreen:“true”,allownetworking:“true”};
    UFO.create(FO, “flashMediaPlayer”); <object id=“flashObj” classid=“clsid:d27cdb6e-ae6d-11cf-96b8-444553540000”  width=“457” height=“411” ><param name=“movie” value=”/mcm_hothits/flash/hh_test.swf” ></object> All fine, exactly what I asked for. But this is it after _e[removed] = <OBJECT id=flashObj height=411 width=457 classid=clsid:d27cdb6e-ae6d-11cf-96b8-444553540000><PARAM NAME=“_cx” VALUE=“5080”></OBJECT> IE is atomically parsing the object tag and adding extra PARAMs. This is ok when you are just displaying a movie. The problem is that my flash file depends on fullscreen=true. Clearly this is being set to false. Has anyone noticed this before? Is there a way to tell IE not to parse the object tag?
    Copy & paste the code below to embed this comment.
  39. While Flash Satay might approach the so-called “ideal”? generic object implementation, watch out. I’ve found that this method, when implemented as described, loads slowly in some browsers, locks the tabs in FireFox 2.0 making it impossible to switch to another tabbed page and causes random crashes in Netscape 7.1. Using the nested-objects method avoids these issues.
    Copy & paste the code below to embed this comment.
  40. The “SWFfix.org”:http://swffix.org site has been quiet since its launch. Does anyone know if the project still breathes?
    Copy & paste the code below to embed this comment.
  41. I got the following reply from Geoff Stearns: bq. [it’s] living, but slow going. swfobject and ufo have been working so well, there isn’t really a big push to get it out (and we’ve had some technical and implementation issues we are trying to figure out). but we are hoping to launch it soon, and we are also working with adobe to make sure everyone is all happy.
    Copy & paste the code below to embed this comment.
  42. While you are looking to consolidate the projects and improve them, think about a work around for overlaying Flash content. SWFObject said it works for overlaying flash content but to-date I have never seen this fully functional.
    Copy & paste the code below to embed this comment.
  43. thank you very match
    Copy & paste the code below to embed this comment.
  44. thanks, nice post.
    Copy & paste the code below to embed this comment.
  45. thanks, nice post.
    Copy & paste the code below to embed this comment.
  46. yes
    Copy & paste the code below to embed this comment.
  47. Teaming up with Geoff sounds like a cunning plan! Are we able to register for email updates on SwfFix at all?
    Copy & paste the code below to embed this comment.
  48. www.02ksa.com
    www.coolplaz.com
    Copy & paste the code below to embed this comment.
  49. http:www.sh1sh.com
    http:www.sh1sh.com
    http:www.sh1sh.com
    Copy & paste the code below to embed this comment.
  50. bob watts, i have just encountered the same situation with IE rewriting all my PARAM tags if I use innerHTML to retrieve content.  why oh why is it doing this. i think
    a) never use innerHTML
    b) never use Flash I HATE YOU MICROSOFT and ALL THOSE OUT THERE WHO MADE STICKING 1 DAMN FLASH MOVIE ON A PAGE SUCH A RIDICULOUS TASK. someone please save me from this hell. im seriously considering changing professions to something simpler like investment banking or brain surgery.
    Copy & paste the code below to embed this comment.
  51. Hello I recently discoverred that my flash is not working in FF.
    The flssh can be seen on www.villasud.nl, and is located right above the menu. In IE it works fine, in FF not at all just a nice white area…. Can anyone tell me what to do do solve this ?
    Robin
    Copy & paste the code below to embed this comment.
  52. You might want to add a note at the end of the article to prevent people looking for the SWFFix software. As stated at Google Code (http://code.google.com/p/swffix/), SWFFix is now renamed to SWFObject2 (http://code.google.com/p/swfobject/).
    Copy & paste the code below to embed this comment.
  53. I’m one more person who has pulled his hair one time or other on this issue (embedding flash + standards compliant + cross browser + “graceful degradation”). Everything around leads me to think that SWFObject2 is the way to go. There is the dual embedding method/javascript dependence issue, but now that it seems Microsoft/Eolas patent thing has been settled, maybe the dynamic method isn’t needed anymore? Is there a ‘perfect’ solution that takes into account every possible scenario, with appropriate alternative content (v.g., Flash movie for minimal plugin version, JPEG + link for old plugin version, different link for javascript disabled, etc…) I feel a lack of a recent article (end of 2008 or beginning of 2009) on this subject, one really authoritative, by someone of the kind of (say) Mr. Zeldman.
    Copy & paste the code below to embed this comment.
  54. I don’t understant why you nest 2 <object>, I understand that it is possible but what is the advantage vs such a code : <!—[if IE]>
    <object classid=“clsid:D27CDB6E-AE6D-11cf-96B8-»
    444553540000” width=“300” height=“120”> —>
    <!—[if !IE]>—> 
    <object type=“application/x-shockwave-flash” »
    data=“myContent.swf” width=“300” height=“120”>
    <!—<![endif]—>
          Alternative content
    </object> On my android system, I have a problem with your solution, the browser seems to fail to catch both second <object>.I find this solution but It’s so trivial that I’m sure there will be issues (but I didn’t find any for now), so can you explain why you nest both objects?
    Copy & paste the code below to embed this comment.