FlashObject (or The Cobble's Children Revisited)
I just updated the blog to use Geoff Stearns' excellent FlashObject system. I decided this morning that I had put off the five minutes it would take to implement the change for far too long.
FlashObject is the neatest way I know of embedding Flash in a web page. Why? Here's why :)
If you're not using it, you should start to!
Comments
by jedwood on 2006-03-15 17:01:12
I haven't fully researched it, but according to John there seems to be an issue with using dynamically embed Flash Objects when updating the player.
From what I understand the Flash OCX gets stuck in update limbo when there are dynamically embedded swfs on the page and a swf is open in another browser, IM or app that utilizes Flash. The only fix requires a system reboot to resolve.
A potential workaround that I can think of to never do Flash Player Detection on the same page as a dynamically embeded swf.
by erikbianchi on 2006-03-15 18:25:49
@Erik: This is very interesting to hear -- I'll test it out. Has anyone informed Geoff about this?
by Aral Balkan on 2006-03-15 19:24:35
Just to clatify, it doesn't have to do with FlashObject directly, rather any dynamically embeded swf.
-erik
by erikbianchi on 2006-03-15 21:33:08
Any time you use ExpressInstall, your Flash movie will be embedded via Javascript because you have to pass in some information to the Flash movie in order for it to work.
I remember discussing the issue, but it was a while ago and I can't remember the specifics of it - I dont't think you have to reboot entirely, just close all the apps that are using the Flash ocx file.
Embedding your Flash movie with js has so many huge advantages I think they far outweigh the small chance that someone might have to close a few apps or reboot when they finish an ExpressInstall, though. :)
by Geoff on 2006-03-15 23:02:21
I couldn't agree more. And hey, if they're using IE... :P
by Aral Balkan on 2006-03-15 23:20:41
I *think* having a separate install page with an embedded swf would avoid the issue. However, that will only resolve the issue until the new IE patch comes out which disables embedded Active X controls.
In that scenario our user couldn’t update their player without enabling the swf (not ideal) and by dynamically embedding the swf there would be an issue if the user tried to update their player and had 2 instances of Flash OCX being referenced (again not ideal).
Once the IE update hits I suppose our client doesn’t have much of a choice, but as an option I can see the client possibly lowering their player requirements to compensate =(
Idealy, I'd love to see Adobe or MS resolve this issue.
-erik
by erikbianchi on 2006-03-15 23:56:41
1) Installed Flash player 7 in IE 6
2) went to deconcept.com in IE 6 and let the Flash movie load, and left the browser open
3) opened a new browser and went to my FlashObject expressinstall page:
http://gstearns.gameinvasion.syracuse.contentproject.com/index.jsp
the page detected that I needed to update my player, so I hit the install button and let it do the ExpressInstall.
When the install was done, it closed the browser window and relaunched a new window and it worked fine. When I visited my test page that spits out the currently installed version, it correctly stated that I had Flash player 8.0.24 installed.
So then I went back to the old browser window, and went to my Flash version check page (http://gstearns.gameinvasion.syracuse.contentproject.com/index.jsp) and it reported that I had Flash player 7.0.61 installed, which is the version I had downgraded to.
Now to me, this seems to be perfectly acceptable behavior - I wanted to view my Flash 8 content, and my browser was upgraded and automatically refreshed the page and everything worked fine.
The fact that the old browser window still thinks it has Flash 7 installed doesn't seem like an issue at all, as the user will eventually close that window and won't have the issue again.
Or am I missing something?
by Geoff on 2006-03-16 00:30:18
first one should be:
http://blog.deconcept.com/flashobject/expressinstall.html
second one:
http://blog.deconcept.com/flashobject/flashversion.html
Aral can you fix that when you get a chance?
by Geoff on 2006-03-16 00:39:22
After you install the player try going back to the first link again. It still prompts you to download Flash 8. =(
-erik
by erikbianchi on 2006-03-16 22:29:52
Basically, we ended up trashing deeplinking for the client (small price to pay) so that we could hardcode the player into the page.
Admittedly, this was the first client we actually have done this for. They had executives go home and try the site out with their IE/FP6 installs and all of them came back screaming about how the site wouldn't load.
One solution/hack I came up with was, on the detection page, put in a swf that's hardcoded into the page. Then, have the SWF call a javascript method in the page to continue with the site. I hadn't fully flushed this out, but it did work with the IE bug.
by John Grden on 2006-03-17 04:59:05
You mean in the first browser that was left open in the background?
Once the ExpressInstall completes, the window that was open is closed, and a new browser instance starts and automatically redirects me back to the expressinstall.html page. This page then works fine, even though I have the other browser window open in the background.
The only chance the user might still see upgrade messages is if they use that minimized browser window to visit a site that requires a newer Flash player than they had installed.
I guess I just don't see this as a very big deal - especially compared to the headaches you might get when you don't use plugin detection at all.
Especially since the 'fix' is something as easy as telling them 'close your browser and try again'.
by Geoff on 2006-03-17 21:30:32