SWFObjectを使用していてFlashが見れない件

スポンサード リンク


“Windows Update をしたらFlashがみれなくなった”
とか、
“最新版のFlashPlayerを入れたのにみれない”
とかの件。

SWFObject + IE6 IE7にての現象。

SWFObject内でのFlashPlayerのバージョン判定で、
問題のある環境だと、FlashPlayerがインストールされているのにもかかわらず
FlashPlayerのバージョン値が取れず(JSからインストールが確認できず)
インストールが無いものと認識してしまうためのよう。

“問題のある環境”とは
こちらのページ IE7でswfobjectが動作しない件 で紹介されています。

Playerの判別をせず、単純にEMBEDしてしまえば見れるようだけど…
いろいろ判別はしたい。

また、完全にアンインストールするというのが解決策のようだけど
ちょっとコレは一般ユーザ厳しすぎるよね;;

問題は、”Flashが本当にインストールされていないユーザ”なのか、
それとも、”この問題の環境”なのかの切り分けがでいない?ところ….

ただ、IE限定で起こるということでとりあえず以下の策を。


現状、Swfobjectを使って

・Javascriptが有効でないブラウザにメッセージを表示
・Flashのインストールが無い場合メッセージを表示
・Flashが古い場合、ExpressInstall画面へ

の切り分けををすべてのブラウザに対して行っているけど

IEだけ

・Flashのインストールが無い場合メッセージを表示

することを、あきらめる。ということにして
SWFObjectを書き換える。
ちなみにSWFObject v2.0 rc3 の場合の例です。

var ua = function() … 内の

playerVersion = [0,0,0];

の行を

playerVersion = /*@cc_on!@*/false ? [9,0,45] : [0,0,0];

に変更。

9,0,45 の部分は、再生可能対象としたいFlashPlayerのバージョン以上を書く
※ごにゅごにょは、IEかどうかの判定 参照コチラ

一応こうすることで、IE以外への余計な影響はなくせ、
IEでも古いバージョンのPlayerへのアテンション対応はできるし
また、FlashPlayerのインストールが無い環境でも、SWFObjectがFlashの貼り付けタグを吐くので
おなじみの黄色いバーやインスコしますか?画面はでるハズ


>> Nintendo Wii ストア

コメントをどうぞ