2010年7月23日金曜日

Flash/Flexアプリの上にHTMLコンテンツをオーバーレイできるか?

これまで長らくやっていなかった、というより避けていた、Flash/FlexアプリとHTMLコンテンツの混合をやる必要が出てきた。

はたして、Flexアプリの上にHTMLコンテンツをオーバーレイできるのか?「半分YESで、半分NOだ」ということがわかった。

Macでは、手持ちのブラウザですべて試してみたけど問題ない。しかしWindowsでは、Firefoxを除くどのブラウザでもHTMLコンテンツがFlexアプリの後ろに表示されてしまう。

この問題の解決は、Flashのembedタグのパラメーターで「wmode」を「transparent」にすれば解決できることがわかった。

しかしこのハックを使うと、今度は逆にFirefoxで問題が出てしまう。その他にも、日本語の入力に問題が出たり、マウスホイールが使えなくなったり、様々なサイドエフェクトが出てしまうようだ。

なんだかんだ言って、FirefoxはIEに次ぐシェアを持っているので無視するワケにはいかない。だからNOだ。このハックは2度と使わないだろう。

どうやら、FirefoxはFlashの読み込みが独特のようだ。Flash読み込み時にHTML上でdisplay:noneからdisplay:blockにした場合などでレイアウトが変わると2度読み込んだりする。

なんでFlashコンテンツの上にHTMLコンテンツをオーバーレイすることくらいが出来ないのか・・・・やっぱり、FlashはHTMLコンテンツではないんだなぁ。