yoshiweb.NET

Flash から JavaScript でサイズ指定した HTML ウィンドウを開く

Flash から JavaScript でサイズ指定などした HTML のサブウィンドウを開くには、HTML に JavaScript を書いて、Flash から JavaScript を実行します。

HTMLにポップアップを開く JavaScript を追加します。
<script type="text/javascript">
<!--
function popup(){
window.open("ファイル名", "ウィンドウ名", "width=横幅,height=縦幅");
}
// -->
</script>

----

Flash内のボタンをクリックしたら JavaScript を実行するように設定します。
ActionScript 1.0/2.0の場合は getURL 関数を使用します。//ウィンドウを開きたいボタンなどで実行
on ( release ) {
getURL("javascript:popup();");
}


ActionScript 3.0 の場合は ExternalInterface クラスを使います。import flash.events.MouseEvent;
import flash.external.ExternalInterface;

// ボタン設定
btn.buttonMode = true;
btn.addEventListener(MouseEvent.CLICK, _clickHandler);

// クリック時に実行
function _clickHandler (event:MouseEvent):void {

// 呼びたい JavaScript の関数名
var callJasFunction:String = "popup";

// JavaScriptに渡したい引数
var msg:String = "";

if ( ExternalInterface.available ) {

// JavaScriptの関数を実行
var returnValue:String = ExternalInterface.call(callJasFunction, msg);

}
}

▼AcrionScript 1.0、AcrionScript 2.0
サンプル - download

▼AcrionScript 3.0
サンプル - download

※ JavaScript はブラウザで実行される機能ですので、ムービープレビューやプロジェクタ・ swf ファイル単体では動作しません。


ポップアップで開いたウィンドウには、横幅/縦幅以外にも、スクロールバーの表示/非表示など、JavaScript のパラメータを変更することでいろいろと設定することができます。詳しくは下記のサイトを御覧ください。

TAG index - サブウィンドウのオプション一覧
http://www.tagindex.com/javascript/window/open_option.html


Adobe - Flashでポップアップブラウザウィンドウを作成する方法

Adobe - 他のウィンドウに影響を与える fscommand の使用を避ける
Adobe のテクニカルノートで FScommandを使用した方法 も書かれていますが、手間がかかるわりに対応していないブラウザもありますので getURL や ExternalInterface で JavaScript を実行するほうがよさそうです。

【追記】ActionScript 3.0での記述方法も追加しました。

投稿日 : 2005年01月10日 - yoshiweb - カテゴリ: ActionScript

コメント

投稿者 : yoshiweb

【更新履歴】
2005/03/22 - JavaScriptのパラメータが載っているリンク先を追加。
2005/07/29 - スクリプトを変更。(voidなど)
2005年03月22日 22時29分06秒

投稿者 : chii

yoshiwebさんいつもこのサイトで勉強させてもらっています。
ちょっと質問なのですが、※ JavaScript はブラウザで実行される機能ですので、ムービープレビューやプロジェクタ・ swf ファイル単体では動作しません。とありますが、作成途中で確かめたい場合はどうすればいいのでしょうか?初歩的な質問で大変申し訳ないのですが、教えていただけないでしょうか?
2007年10月18日 16時24分02秒

投稿者 : yoshiweb

返信が遅くなってすみません、chiiさん。パブリッシュした後にブラウザでHTMLを開いて確認するしかないと思います。
2007年10月25日 11時20分29秒

投稿者 : koi

勉強になりました
ありがとうございます
2009年02月19日 13時27分26秒