SWFObjectを使うときに気をつけること

SWFObjectを使って書き出すのは基本なんですが、気をつけるべきことをいくつか。

まず、これが基本形。

var so = new SWFObject(swf/test.swf", "testID", "width", "height", "8", "#ffffff");
so.addParam("wmode", "transparent");
so.addParam("menu", "false");
//  document.write(so.getSWFHTML());
so.write("flashcontent1");
//追記:getSWFHTML使うとwinIEのアクティブコントロールにひっかかる

気をつけておきたいのがnoscript。しっかりnoscriptも書きましょう。

さらに気をつけなければいけないのがFlashのバージョンが足りない場合。9が必要なのに8しか入っていなかったら、何も表示されません。せめてそれは避けたいので、一応バージョンチェックもしておきます。基本形を改良したのがこの形。

var installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
var requiredver = 8;
if (installedVer['major'] >=requiredver) {
var so = new SWFObject(swf/test.swf", "testID", "width", "height", "8", "#ffffff");
so.addParam("wmode", "transparent");
so.addParam("menu", "false");
// document.write(so.getSWFHTML());
so.write("flashcontent1")
}else{
document.write('Flashプレイヤーが入ってないよ!!')
}

バージョン管理をしてなくて、基本形だけで書いてると、企業イントラや学校なんかで、windowsパソコンをAdministrator以外で使わされてる場合はプレイヤーのバージョンアップができないので、未だに7のバージョンを入れてる方がままいるようです。noscriptを書くまでなら基本なんですが、ワンランク上の親切のためにプレイヤーチェックもするようにしましょう。

まとめ。
SWFObjectを使うときは

  1. wmodeを設定する
  2. menuをなくす
  3. so.getSWFHTMLを使わない(winIEのアクティブコントロール対策)
  4. installedVerをチェックする
  5. バージョン検出で判定して、noscriptと下位バージョン用にプレイヤーが必要な旨を表示。

基本中の基本ですが、忘れないようにメモメモ。

自分で作る blog ツール
自分で作る blog ツール

この記事には、カテゴリ Flash タグは , がつけられています。