[wmode][ExternalInterface]wmode:opaqueでポップアップブロック
swfファイルをhtmlへ貼り付けるとき、
wmodeを設定しないと(デフォルト値だと)ブラウザ上で再生速度が遅くなります。
これを解決する方法としてwmodeをopaqueにするとよいですが、
IEで「navigateToURL」を使って新規ウィンドウに
リンクを開くとポップアップブロックにかかります。サンプルページ
そこで「ExternalInterface」を使用すればこの問題を解決することができます。
FlashCS3のヘルプには
ExternalInterface クラスは外部 API であり、ActionScript と Flash Player のコンテナとの間で 直接通信できるようにするアプリケーションプログラミングインターフェイスです。
と書かれています。よくわかりませんが、JavaScriptの関数とか実行できるということみたいです。
これをリンクを開くときに使うには下記のようなasファイルを用意して
ボタンがクリックされたときに「getURLex」にURLを渡して実行してやればよいです。
wmodeには他にも問題がありますがそれはまた次の機会に。
ファイル名 : getURL.as package { import flash.net.navigateToURL; import flash.net.URLRequest; public function getURL(url, window="_blank"){ navigateToURL(new URLRequest(url), window); } }
ファイル名 : getURLex.as package{ import flash.external.ExternalInterface; public function getURLex(url, window="_blank"){ if(ExternalInterface.available){ var str=""; try{ str=ExternalInterface.call("function(){return navigator.userAgent;}").toString(); }catch(e){ str="failed"; } if(str=="failed" || str.indexOf("Safari")>-1 || str.indexOf("Opera")>-1){ getURL(url); }else{ try{ ExternalInterface.call("function(){window.open('"+url+"', '"+window+"'); void(0);}"); }catch(e){ getURL(url); } } }else{ getURL(url); } } }