- ベストアンサー
Flashの読み込みが出来ない場合の表示について
フラッシュの読み込みが出来ない場合、その変わりに、任意のイメージを表示させて対処することは出来ますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
簡単そうで,難しいご質問です。 Flashのバージョンは何でしょうか? FlashMXまでとFlashMX2004とでは,変わります。 FlashMXまでは,代替イメージとそれを表示するHTMLがパブリッシュの設定で,自動作成されていました。 ●「ファイル」→「パブリッシュの設定」で「HTML」タブを選択し,「テンプレート」で「Flash○を検知」というのを選択して,同時にGIFをパブリッシュする。 すつとそのJavaScriptがHTML内に自動作成されていたのです。 ---FlashMXで「Flash5を検知」にした場合のタグ--- <HTML> <HEAD> <meta http-equiv=Content-Type content="text/html; charset=SHIFT_JIS"> <TITLE>sample1</TITLE> </HEAD> <BODY bgcolor="#FFFFFF"> <!-- URL's used in the movie--> <!-- text used in the movie--> <!-- image map --> <MAP NAME="sample1"> </MAP> <SCRIPT LANGUAGE=JavaScript1.1> <!-- var MM_contentVersion = 5; var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0; if ( plugin ) { var words = navigator.plugins["Shockwave Flash"].description.split(" "); for (var i = 0; i < words.length; ++i) { if (isNaN(parseInt(words[i]))) continue; var MM_PluginVersion = words[i]; } var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion; } else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.appVersion.indexOf("Win") != -1)) { document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag document.write('on error resume next \n'); document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n'); document.write('</SCR' + 'IPT\> \n'); } if ( MM_FlashCanPlay ) { document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'); document.write(' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" '); document.write(' ID="sample1" WIDTH="550" HEIGHT="400" ALIGN="">'); document.write(' <PARAM NAME=movie VALUE="sample1.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> '); document.write(' <EMBED src="sample1.swf" quality=high bgcolor=#FFFFFF '); document.write(' swLiveConnect=FALSE WIDTH="550" HEIGHT="400" NAME="sample1" ALIGN=""'); document.write(' TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">'); document.write(' </EMBED>'); document.write(' </OBJECT>'); } else{ document.write('<IMG SRC="sample1.gif" WIDTH="550" HEIGHT="400" usemap="#sample1" BORDER=0>'); } //--> </SCRIPT><NOSCRIPT><IMG SRC="sample1.gif" WIDTH="550" HEIGHT="400" usemap="#sample1" BORDER=0></NOSCRIPT> </BODY> </HTML> ------------------------------------------ 簡単に言うと,Flash5Player以上が入っていると「document.write」でFlashを貼り付けるタグをHTMLにdocument.writeし, Flash5Player以上が入っていないと,代替GIFを表示させるタグをHTMLにdocument.writeする。 というスクリプトです。 見てわかると思いますが,JavaScriptを有効にしていないブラウザではFlashも表示されないという大問題を含んだ,スクリプトです。 ですからでしょう,MX2004からは,こういう物はなくなりました。 でも似たような操作でFlashのバージョンを検出することはできます。 「ファイル」→「パブリッシュの設定」で「HTML」タブを選択し,「テンプレート」の下にある,「Flashのバージョンを検出」にチェックを入れ,設定から色々設定出来ます。その前に,書き出すSWFのバージョンを指定しておかなければ,バーションを選べませんが。 でも,これはFlashPlayerのバージョンが低いとき,代替のHTMLに飛ばすというものです。 MX2004の場合は,上のスクリプトを変更して,使われるか,この,MX2004流の検出を使ってください。 詳細は,MX2004のヘルプ, 「パブリッシュ設定を指定して埋め込み Flash コンテンツを持つ HTML ドキュメントを作成」 や 「Flash Player 検出のパブリッシュ設定の構成」 を参考にしてみてください。