こんにちは、なかわけです。
今日知った事実にかなりへこんでおります。
タイトルの通り、HTMLに埋め込むとFlashをクリックしてもページが開かない、のです。
もうちょい詳しく説明します。ムービークリップ(以下、MC)にボタン設定をしました。
MyButton.onRelease = function(){
getURL(“hoge.html”, “_sefl”);
}
ただ、これだけです。プレビューやなかわけが持っているテストサーバでは、MCをクリックするとちゃんとページにジャンプするのにお客さんの環境のサーバではクリックしてもページが切り替わりませんでした。マウスをオーバーするとカーソルは指マークには変わります。
その日1日中悩みましたが、結局わかりませんでした。
次の日、お客さんからメールが届いてました。
Flashプレイヤーのバージョンが9の場合、getURLで_selfが効かないようです
なんだってー!
調べてみたら、Adobeのサポートページに以下のようなドキュメントがありました。
229684 HTML ページに埋め込まれた SWF からのリンクが機能しない場合がある
http://support.adobe.co.jp/faq/faq/qadoc.sv?229684+002
簡単にまとめると、
- 問題として、Flash Player 9では、getURL(または ActionScript 3.0 での navigateToURL)関数でウィンドウ名に「_self」「_parent」「_top」のいずれかを指定すると、SWF からのリンクが機能しない場合がある
- 理由として、セキュリティの仕様上、getURL(または navigateToURL)の呼び出しは、同じホスト内の HTML ページのみを対象として作用する。つまり別ホストへのリンクはできない
- 解決方法といて、別ホストへのリンクをする場合は、ターゲットに「_blank」を指定する
今日も勉強になったなー(つД`)