Saturday, 20 May 2006

BBC Flash Update

[UPDATE: I have to say it was all my fault. Even though I had the non-free flash plugin install in ubuntu, it wasn’t activiated, I was using GPL Flash 4. Shame! The BBC were blameless - almost - IMHO they should have shown a popup dialog to warn the user and then gone on to see if their flash player could handle it; however thats a minor point compared to my foolish mistake]

To follow up on my previous post, and to prove that it is the javascript flash detection code at fault, I edited the html source of one of the offending pages from this:

if ((ssit_FlashPresent == 2) && (ssit_FlashVersion >= 5)) {
document.write (’<object id="hideandhelp" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="100%" height="85%"><param name="movie" value="intro.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFF66"><embed name="hideandhelp" src="intro.swf" quality="high" bgcolor="#FFFF66" width="100%" height="85%" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" swLiveconnect="true"></embed></object>’);
}
else {
document.write(’<img src="/cbeebies/totstv/music_sounds/images/console.gif" alt="" width="500" height="300" border="0">’);
}


to this:

if (1 || (ssit_FlashPresent == 2) && (ssit_FlashVersion >= 5)) {
document.write (’<object id="hideandhelp" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="100%" height="85%"><param name="movie" value="intro.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFF66"><embed name="hideandhelp" src="intro.swf" quality="high" bgcolor="#FFFF66" width="100%" height="85%" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" swLiveconnect="true"></embed></object>’);
}
else {
document.write(’<img src="/cbeebies/totstv/music_sounds/images/console.gif" alt="" width="500" height="300" border="0">’);
}


(In otherwords "just show me the flash anyway, foolish computer); and suddenly the flash all started working again.

If the BBC are buying this ssit flash detection code from a commercial company then I think they are wasting their money, if they would adhere to well known standards there wouldn’t be this problem in the first place.

This would be a better solution:

<object id="hideandhelp" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="100%" height="85%"><param name="movie" value="intro.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFF66"><embed name="hideandhelp" src="intro.swf" quality="high" bgcolor="#FFFF66" width="100%" height="85%" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" swLiveconnect="true"><img src="/cbeebies/totstv/music_sounds/images/console.gif" alt="" width="500" height="300" border="0"></embed></object>

If they really want to use the ssit stuff… they still shouldn’t. The answer would be to only explicitly block combinations known to fail, rather than only permit those known to succeed; but their source for these combinations known to fail would probably be as faulty as their current code is, and so is doomed to fail.

I’m just writing up a firefox plugin which will be available worldwide on the firefox plugins page to fix known faults with the BBC’s CBeebies website; unless of course the BBC manage to fix their website first….

I have posted my feelings and proofs to the BBC at http://www.bbc.co.uk/feedback/tech_fault_web.shtml

Update: nobody just writes a firefox plugin for the first time. I have more fun finding the fault than writing a work-around which I hope will soon be unnecessary.

No comments:

Post a Comment