フラッシュ9からリンクが正常に機能しない場合の対処法
Post on:2007年4月25日
HTMLページに配置したswfファイルから、リンクが正常に機能しない場合の対処法です。
不具合の現象
swfファイルで、getURLを使用してウインドウ名に「_blank」を指定したリンクが正常に機能しない。
不具合がでた環境
不具合がでるフラッシュのバージョンは、OSやIEのバージョンにより異なるため、列挙します。
- 不具合のあった環境
-
- XP SP2+IE6+Flash9.028.0
- XP SP2+IE6+Flash9.045.0
- XP SP2+IE7+Flash9.016.0
- 不具合のなかった環境
-
- XP SP1+IE6+Flash9.016.0
- XP SP2+IE7+Flash9.045.0
- Vista+IE7+Flash9.028.0
9.045.0未満というのではないようです。
また、同じバージョンでもOSが異なると不具合がでたりします。
参考にしたページ
[229684]HTML ページに埋め込まれた SWF からのリンクが機能しない場合がある
[Adobe サポートデータベース]
Adobe Flash Player 9 で、Flash Player ムービー(SWF)がホストの HTML ページと異なるドメインにあるか、あるいは HTML パラメータの AllowScriptAccess が「never」に設定されている場合、getURL(または ActionScript 3.0 での navigateToURL)関数でウィンドウ名に「_self」「_parent」「_top」のいずれかを指定すると、SWF からのリンクが機能しません。
これは、いくつかの SWF ファイルにおいて、ユーザが参照している Web ブラウザのロケーションを変更する機能を妨げることがあるかもしれません。
フラッシュ8,9からリンクが正常に機能しない場合の解決方法
フラッシュ9からリンクが正常に機能しない場合の解決方法は、2種類あります。
1つは、swfファイルを修正する方法、もう1つはHTMLファイルを修正する方法です。
- swfファイルを修正する場合
- Adobeのページには、getURLのウインドウ名に「_blank」、カスタムのウィンドウ名、ウィンドウ名を指定しない、とありますが、「_blank」を指定して不具合があったので、「ウインドウ名を指定しない」方法で対応ができました。
- HTMLファイルを修正する場合
- AllowScriptAccessパラメータを「always」と明示します。
記述例:
<param name="allowScriptAccess" value="always" />
embed内に「allowScriptAccess="always"」を記述
sponsors