IE7+FlashPlayer9(?)でSWFが表示されないっぽい件

クライアントからの報告で初めて知ったIEの不具合っぽい現象。 「Windows Update をしたらFlashが表示されなくなったんですか・・・」と。 Adobe公式サイトから最新版のFlashPlayerを入れなおしてもダメなんだそうで。。 色々と先方の環境を聞いてみたところ、SWFObjectはダメで、Adobe公認のAC_RunActiveContent.jsの場合は問題なし。 これって SWFObject のバグ?かと思いながらもさらに調査。 すると、どうもブラウザから FlashPlayer のバージョンを取得できないのが原因。 SWFObjectの場合、こんな感じにして、コンストラクタ引数の5番目で対象バージョンを指定できるんだけど、それに満たない場合は HTML 置換が行われないのは周知の事実。
var so = new SWFObject("test.swf", "movie", "400", "200", "8", "#FFFFFF");
その内部処理において、FlashPlayerのバージョンをJSで判断してるようで、今回の不具合の場合はそれが取得できないらしく、結果としてFlashが表示されないみたい。 試しに次のコードで単体テストをしてみたら、先方の環境でやっぱり取得できませんでした。。
var version = 0;
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;
if(navigator.plugins["Shockwave Flash"]){
	var tmp = navigator.plugins["Shockwave Flash"].description.split(" ");
	for(i=0; i<tmp.length; i++){
		if(!isNaN(parseInt(tmp[i]))){	version = tmp[i];}
	}
}
else if(isWin && isIE){
	version = new ActiveXObject("ShockwaveFlash.ShockwaveFlash").FlashVersion();
	version = Math.floor(version / 0x10000);
}
alert(version);
参ったなと思って調べてみると、SWFObject のフォーラムで同様の現象が報告されて議論されてます。 deconcept › Corrupt Flash Player install after IE 7 upgrade この問題はIE7自身よりも、WindowsやIE、FlashPlayerのアップデートに生じる問題だそうで、FlashPlayer更新の際に過去の古いバージョンを消せずにインストールするからっぽいです。 複数のPlayerがあるからバージョンが取得できないんでしょうか。
解決方法としては、
1. Quit all open programs. This step is important because other programs may be using the Flash Player, and if they are, the uninstaller will fail silently.
2. Run the Adobe Flash Player Uninstaller.
3. Reinstall your Flash player.
と、一度アンインストーラで完全に削除してから再インストールすればよいようです。 クライアントにその旨を伝えて、試していただいたところ、無事修正完了っ!やったっ!! まったくマイクロソフトさん、困ります~ ・・・でも、フォーラムでそれでも直らない、という報告があるのが気になるぅ~ ちなみに、SWFObjectの作者の人、今 YouTube の中で働いているんですね。スゴいなぁ。 YouTubeにも同様の現象の人のためのページがありました。 YouTube - Broadcast Yourself.- The video won't play—what's wrong? + Video たまにはタメになりそうなエントリを。

[ 追記 2008/02/22 ]
メディアテクノロジーラボさんの方でもっと詳しい点をまとめていますので紹介します。 ActiveX とはみなされないからなんですってね。うーむ、わからん・・・。
IE7でswfobjectが動作しない件 : Media Technology Labs (MTL) : メディアテクノロジーラボ ブログ

Trackbacks

Trackback URL: http://blog.naggg.jp/mt/mt-tb.cgi/75

Comments(1)

はじめまして!
今日、flashを入れ替えたら、表示されなくなったので、ぐぐったらこちらへたどりつきました。
そういうことだったのですね。
解決策?を試してみようかと思いますが、自分の環境下ではみることができても、お客様からはみれないわけで・・困ったものですね。

Send Your Comment