HTMLからFlashに変数を渡すには、2通りの方法がある。ひとつはFlashVarsを使用する方法、もうひとつはSWFファイルURL指定時に、クエリーとして変数を付加する方法。
// 後者抜粋 <param name="movie" value="deftrash.swf?hoge=foo" /> <embed src="deftrash.swf?hoge=foo" ... />
前者は FlashPlayer6 以上で、後者はもっと前の世代でもOK。そんなわけで、後者の方法を使用している人も多いはず。ところが、ここで落とし穴。変数の文字列に「#」が含まれていると、Operaでは、「#」以降の文字列を渡すことができない!(FlashVarsの方法では大丈夫っぽい)
どうやらURLエンコーディングしてあげる必要があるみたい。
// JavaScript で対応する場合 <script type="text/javascript"> document.write("<param name=\"movie\" value=\"deftrash.swf?hoge=\" + escape("#foo") + "\" />"); document.write("<embed src=\"deftrash.swf?hoge=" + escape("#foo") + "\" ... />"); </script>
location.hash
をFlash側に渡そうとして、コレにすごいハマった。Operaとかスゴイ嫌いだよ。ううう。
このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/302