feb19.jp blog - life is creative!

AS3でポップアップウィンドウ(2009/春)

ブックマークに追加する tags:    

AS3でポップアップウィンドウ(2009/春)

Flash Player 9以上、Action Script 3.0用にパブリッシュして(つまりAVM2環境下)、ポップアップウィンドウで何らかのページを表示させる方法。最近(2009年春)の場合。

色々調べてみたけど、Safariだとポップアップブロックをオンにしていると、どうやってもポップアップウィンドウが表示できないので、navigateToURL(urlRequest, “_blank”)で、新規ウィンドウ表示、というようにしました。おそらくこれは、現時点のSafariとAMV2(Action Script 3.0実行環境)の相性問題。

ExternalInterfaceを使うので、Security.sandboxTypeを使ってブラウザで表示されているかどうかを調べ、ExternalInterfaceが使えるかどうかを調べ、実行しているブラウザがSafariかどうかを調べ、ポップアップウィンドウが開ける環境であれば、ポップアップウィンドウをExternalInterfaceで呼び出し、どこかで不可であればnavigateToURL()で呼び出し、という感じです。

下記サンプルです。コードとしては今ひとつスマートではないですが、分かりやすめに書いてみました。
ちなみにこれを実行するとこんな感じになります

btn.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void
{
	var isPopup:Boolean = popup("http://feb19.jp");
	tf.text = isPopup.toString();
}
 
/*
 * ポップアップウィンドウを開きます。(Safariでは新規ウィンドウで表示)
 * @param		url	リンク先URL
 * @param		option	ポップアップウィンドウJavaScript(window.open)を実行する時のオプション文字列
 * @return	ポップアップウィンドウが理論上開けられたらtrue、ダメならfalse
 */
function popup(url:String, option:String = "width=320, height=460, toolbar=yes"):Boolean
{
	//ブラウザ上で動いているかどうか
	if(Security.sandboxType != Security.REMOTE)
	{
		//ダメでした
		navigateToURL(new URLRequest(url), "_blank");
		return false;
	}
	
	//ExternalInterfaceが使用可能かどうか
	if (!ExternalInterface.available)
	{
		//ダメでした
		navigateToURL(new URLRequest(url), "_blank");
		return false;
	}
	
	//ブラウザがSafariかどうか
	var browserAgent:String = ExternalInterface.call("function getBrowser(){ return navigator.userAgent; }");
	if (browserAgent.indexOf ("Safari") >= 0)
	{
		//Safariでした
		navigateToURL(new URLRequest(url), "_blank");
		return false;
	}
	
	//ポップアップします
	ExternalInterface.call("window.open", url, "_blank", option);
	return true;
}

AppleとAdobeで技術協力していただいてなんとか対応して欲しいものであります。(あとiPhoneにFlash乗せる、とか)

以前書いたポップアップについての記事
AS3でポップアップウィンドウを呼び出す

2009年05月10日14:27

Webデザインブログ

「AS3でポップアップウィンドウ(2009/春)」の関連エントリー

 iTunes Store(Japan)

コメントを投稿

トラックバック

このエントリーのトラックバックURL:
http://feb19.jp/mt/mt-tb.cgi/172

この一覧は、次のエントリーを参照しています: AS3でポップアップウィンドウ(2009/春):

» AS3でポップアップウィンドウを呼び出す 送信元 feb19.jp blog
ポップアップブロックを表示させずに、ポップアップウィンドウを呼び出す... [詳しくはこちら]

» AS3 で SWFAddress 2.4 を使う ( Flash でブラウザの戻るボタン、パーマリンクに対応する ) 送信元 feb19.jp blog
Flash サイトのページ内で移動すると、ブラウザの戻るボタンが聞か... [詳しくはこちら]

Navigation

古:AS2、AS3のFileReferenceクラスを使って、オリジナルダウンローダーを作る
新:iPhone アプリ開発に効く8冊の本/iPhone SDKオススメ書籍
トップページ

Recently Entries
AS3 で Flash コンテンツに YouTube Player を埋め込む
AS3 用の Google 公式 YouTube 埋め込みプレイヤー...
AS3 で SWFAddress 2.4 を使う ( Flash でブラウザの戻るボタン、パーマリンクに対応する )
Flash サイトのページ内で移動すると、ブラウザの戻るボタンが聞か...
SWFAddress 2.4 リリース
SWFAddress が 2.4 にバージョンアップしていました。主...
AS3 の FileReference.upload() の使い方と注意すべき点
ユーザー参加コンテンツで「ユーザーが自由にファイルをアップロードした...
Flash CS5 Professional で iPhone アプリを作れるように
アメリカで開催されている Adobe MAX 2009 にて CS5...
Flash Develop に見切りを付けて Flex/Flash Builder Eclipse plugin を入れるプレイ
もうここ最近 Windows 環境で ActionScript を書...
loader.unload と addChild/removeChild に関する、Flash Player 9 と 10 の微妙な差異
Flash CS4 Professional で開発を行っていると、...
ありがとう Tweener/最終版 Tweener 1.33.74 小技
Flash のトゥイーン系ライブラリのスタンダードとも言える Twe...
Flash CS4 の新モーショントゥイーンは「ピクッ」ってならない
「回転したムービークリップ」(特に写真とかを含むムービークリップだと...
iPhone アプリ開発に効く8冊の本/iPhone SDKオススメ書籍
Mac なソフトウェアを作るのに興味があったのと、iPhone SD...