
ポップアップブロックを表示させずに、ポップアップウィンドウを呼び出す手法。たぶん、AS2でもできるんじゃないかとか思うんですけど、試してないからわかりません。
手法としては、ExternalInterface.call()で、JavaScriptのwindow.open()メソッドを呼び出すんですが、その時、new String()で作った文字列のインスタンスを引数に与えるってのがミソかも。
var url0:String = new String();
url0 = "http://www.meditation-records.com/";
ExternalInterface.call("window.open", url0, "_blank");
これをMouseEvent.CLICKイベントのハンドラに入れてやれば、同じ大きさで同じ機能のウィンドウを新たに開いて、アドレスにアクセスさせられる。
ExternalInterface.callの第四引数(window.open()の第三引数)にwidth=820, height=500とかのパラメータを与えてやると、そうなる。このパラメータ類は、この解説の下の、JavaScriptの解説を参考にしてください。
btn.buttonMode = true;
btn.addEventListener(MouseEvent.CLICK, onClickHandler);
function onClickHandler(e){
var url1:String = new String();
url1 = "http://www.meditation-records.com/";
ExternalInterface.call("window.open", url1, "_blank", "width=820, height=520");
}
あと、SWFを表示するHTMLの中の、AC_FL_RunContentへやobjectタグや、SWFObjectを使う場合はそれの「allowScriptAccess」パラメータを、「sameDomain」か、「always」にする必要がある。同じドメインへなら、「sameDomain」。それ以外に、違うドメインへリンクさせるなら、「always」を。「never」にすると、サンドボックス障害エラーになります。
附録:JavaScriptのwindow.open()メソッドについて
window.open(URL, ウィンドウ名[, オプション]);
第一引数: URL(文字列、String)
第二引数: ウィンドウ名(基本、nullとか"_blank"とかでいいっぽい。ウィンドウ名を指定する場合は、文字列、Stringで。)
第三引数: オプション(複数のパラメータをカンマで区切って、一つの文字列、Stringにして、指定する。ここを省略すると、新規ブラウザウィンドウと同じになる。)
第三引数のパラメータの種類
width ウィンドウの幅。数値で指定。
height ウィンドウの高さ。数値で指定。
left ウィンドウの左位置。数値で指定。
top ウィンドウの上位置。数値で指定。
menubar メニューバーを表示するか否か。yesかnoで指定。
toolbar ツールバーを表示するか否か。yesかnoで指定。
location アドレスバーを表示するか否か。yesかnoで指定。
status ステータスバーを表示するか否か。yesかnoで指定。
scrollbars スクロールバーを表示するか否か。yesかnoで指定。
resizable リサイズ可能か否か。yesかnoで指定。
もっと詳しいことを知りたい場合は、JavaScriptの専門サイトとかを調べるといいかもです。
2009年5月にポップアップについての新しい記事書きました。
AS3でポップアップウィンドウ(2009/春)

