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の貼り付けタグを吐くので
おなじみの黄色いバーやインスコしますか?画面はでるハズ







tennis lessons howell, mi:
A powerful share, I simply given this onto a colleague who was doing a bit of analysis on this. And he in actual fact purchased me breakfast as a result of I found it for him.. smile. So let me reword that: Thnx for the deal with! However yeah Thnkx for spending the time to debate this, I really feel strongly about it and love studying more on this topic. If potential, as you grow to be experience, would you thoughts updating your weblog with more particulars? It is highly useful for me. Big thumb up for this weblog put up!
16 7 月 2011, 5:58 am