feb19.jp

Nobuhiro Takahashi
Designer / Engineer

AS3でポップアップウィンドウを呼び出す

AS3でポップアップウィンドウを呼び出す

ポップアップブロックを表示させずに、ポップアップウィンドウを呼び出す手法。たぶん、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/春)

Tweet Share Bookmark

Navigation

prev: AS3でSoundを制御する
next: ゴールデンスランバー/伊坂幸太郎

Recently Entries