swfobject2.2のFlashがFirefoxで表示されない...。その2

()
その1はこちら

Flash100%表示するとき、HTMLにファイルにDOCTYPE宣言を行っていると、Firefoxではflashが表示されなくなってしまうバグ。


どうやらバグとして有名な話らしいですが、
僕は本格的にFlashを使い始めたのが遅かったので、おととい知りました。


今後も必須知識となりそうなのでメモ。


DOCTYPE宣言取っちゃえばいいなんて言うアドビ。

そんなの気持ち悪くて無理。


fladdictさんがDOCTYPE宣言したままflashを表示する策を書いてくれています。
http://www.fladdict.net/blog-jp/archives/2005/03/firefoxflash100.php

でもいまどきXHTML形式で書けないのもなぁ...。


いやいやこんな偉大な先輩が今でもそうするはずは当然なく、
2005年の記事なんで...そういう時期だったのかなぁという感じです。


今は、XHTMLのDOCTYPE宣言で、xml宣言もした上で、
ちゃんとflashを表示できるようになってました。


僕の場合、
swfobjectを使い、swfファイルを埋め込みました。
もちろんwidthとheightを100%にした上で。


あとはびっくり、CSSをいじれば直りました。


swfobjectで指定した、swfファイルを埋め込むdivに対し、以下のスタイルを適用します。

#main { 
	height:100%;
	width:100%;
	position:absolute;
	left:0;
	top:0;
	overflow:hidden;
}

こんな感じ。

もうこれでOK。

(overflowは無くてもいけましたが、いろんな参考サイトではほとんどが入れてました。)


ビーチボーイズアプリ第2弾はこれで無事バグから回復しました。


該当部分ソースは以下のようになってます。

Javascript


CSS


こんな感じ。


こういうのって、本に載ってないんだよなぁ。


なんでなんだろ。


【参考】

http://www.soei-d.com/wp2/?p=28

戦意

© 2012 戦意