フラッシュ9からリンクが正常に機能しない場合の対処法

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"」を記述

top of page

©2017 coliss