ActiveXの動作変更
2006年4月12日に公開されたInternetExplorerのパッチを適用すると
WindowsXP以降に搭載されているInternetExplorerのActiveXの動作が変わり
閲覧者がアクティブ化するまでいじることができなくなります
→マイクロソフト:InternetExplorerの変更に関する開発者向け情報上記のリンクにも回避方法が載っていますが
macromediaが提供している方法を使うと簡単に複数のFlashに対応できます
→マクロメディア:アクティブコンテンツデベロッパーセンター
上記の資料では判らない人向けにFlashに特化してまとめておきます
ここのページ内のサンプルファイルをダウンロードする
解凍して AC_RunActiveContent.js をFlashを設置しているページに置く
複数のHTMLから読み込むことも考えパスの書きやすい位置が良いでしょうFlashを使用しているHTMLを開き
<head>内に以下の外部JavaScript呼び出し行を追加する
以下を<head>内に追加する <script src="パス/AC_RunActiveContent.js" type="text/javascript"></script>
その後、今まで使用していた呼び出しタグを以下のように書き換える
以下はmabi手記で配布しているMabiPlayerの例です
従来のタグ <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100" height="135" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="MabiPlayer.swf?file=music.mp3&pmode=0&loop=1&vol=80" />
<param name="quality" value="autohigh" />
<param name="wmode" value="transparent" />
<param name="bgcolor" value="#ffffff" />
<embed src="MabiPlayer.swf?file=music.mp3&pmode=0&loop=1&vol=80" quality="autohigh" wmode="transparent" bgcolor="#ffffff" width="100" height="135" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object>書き換え後 <script type="text/javascript">
AC_FL_RunContent(
'src','MabiPlayer?file=music.mp3&pmode=0&loop=1&vol=80',
'width','100',
'height','135',
'bgcolor','#ffffff',
'quality','autohigh',
'wmode','transparent',
'align','middle',
'allowScriptAccess','sameDomain',
'codebase','http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'pluginspage','http://www.macromedia.com/go/getflashplayer');
</script>見ての通り配列二つを対にしてパラメータと値になっていますので
ほかに必要なパラメータがあれば配列に追加してやることで追加できますsrcパラメータにFlashのファイル名を指定しますが拡張子を削って指定します
今回の例のように後ろにパラメータがある場合
MabiPlayer.swf?file=music.mp3&pmode=0&loop=1&vol=80
は
MabiPlayer?file=music.mp3&pmode=0&loop=1&vol=80
となりますしかしこのままではJavaScriptをOFFにしていると何も表示されません
JavaScriptをOFFにしている人はActiveXもOFFにしている人がほとんどですが
noscriptに既存のタグを書いておくことで対応出来ます
(JavaScriptがOFFな閲覧者は既存の方法になるためアクティブ化が必要になります)
JavaScript OFF ActiveX ON対応 <script type="text/javascript">
AC_FL_RunContent(
'src','MabiPlayer?file=music.mp3&pmode=0&loop=1&vol=80',
'width','100',
'height','135',
'bgcolor','#ffffff',
'quality','autohigh',
'wmode','transparent',
'align','middle',
'allowScriptAccess','sameDomain',
'codebase','http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'pluginspage','http://www.macromedia.com/go/getflashplayer');
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100" height="135" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="MabiPlayer.swf?file=music.mp3&pmode=0&loop=1&vol=80" />
<param name="quality" value="autohigh" />
<param name="wmode" value="transparent" />
<param name="bgcolor" value="#ffffff" />
<embed src="MabiPlayer.swf?file=music.mp3&pmode=0&loop=1&vol=80" quality="autohigh" wmode="transparent" bgcolor="#ffffff" width="100" height="135" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</object>
</noscript>タグの最後に / が入っているところがありますが
これはXHTML準拠のタグに入るもので通常のHTMLならば消しても問題ありません
(このままついていても問題ありません)