wmode=transparent で全角テキスト入力するには…
2007年09月21日
---- level0 からの転載です ----
wmode=trancate で全角テキスト入力するには…
IE で wmode=transparent な flash に全角テキスト入力すると表示が崩れてしまいます (http://www.adobe.com/jp/support/flash/ts/documents/fl0260.html)。これは「テキスト入力スペースのあるブログパーツで背景透過したいんだけど。。」というときに非常に頭を悩ませる問題なのですが、IE で上手く表示されないだけに流石にこの問題を切り捨てるのはウォーキングワイルドサイドすぎるのでなんとかしたいところです。
で、解決方法というより、根本的な対処はできないので妥協策を講じてみました。その妥協の産物がこの PAOLO というブログパーツです。
「摩訶不思議!? IE で背景透過全角テキスト入力」
テキストをドラッグするとつっこみをできるというブログパーツなのですが、つっこみフォームをあたかも背景透過させているかのように表示させています。
やり方は簡単、背景透過の元となる Flash の上に、フォームの部分だけの背景透過ではない長方形の Flash をかぶせているのです。flash の上に flash をかぶせる javascript のサンプルは以下の通り。必要に応じて js のメソッドを ExternalInterface で叩いて表示の on/off をしています。今回はやらなかったのですが、フォームと本体を通信させる場合は LocalConnection などで別途やり取りさせる必要がありそうですね。
var currentScript = (function (e) { if(e.nodeName.toLowerCase() == 'script') return e; return arguments.callee(e.lastChild) })(document); document.write(''); // フローティングの Flash を開く function show_form() { var div = document.getElementById('tag_wrapper'); div.innerHTML = ' - フローティングで表示したい Flash の Object タグ - '; } // フローティングの Flash を閉じる function close_form() { var div = document.getElementById('tag_wrapper'); div.innerHTML = ''; }
- 投稿者