前回のエントリでshadowboxを利用してswfを表示するテストをしてみたけど、どうもフレームレートが落ちてるみたいで動きが滑らかじゃなかった。ちょっと調べてみたらIEにバグがあって、swfを貼り付ける時のエンベットタグに、
<param name=”wmode” value=”opaque” / >
が入ってないとフレームレートが一割前後落ちるらしい。
参考:
FLASHのFPSを正常に
graffiti-blog: wmodeのクセ
HTMLにswfを直張りしてるなら上のタグを加えれば済むんだけど、このブログのswf表示してる部分ってshadowboxが動的に生成してるから手がつけられないのよなぁ。
仕方がないからshadowbox.jsを恐る恐る開いて見ると2251行目にエンベットタグのパラメータを追加してる部分を発見。そこに<param name=”wmode” value=”opaque” / >を加えてみた。
2250: markup.children = [
2251: { tag: ‘param’, name: ‘movie’, value: link.href },
2252: { tag: ‘param’, name: ‘wmode’, value: ‘opaque’ }
2253: ];
※shadowbox1.0b7を使用。
これでshadowboxを使ってswfを表示してもフレームレートは落ちなくなった。
これはswfobjectを使うときも気をつけな。