ActionScript [ 初級編 ] Flash _ ActionScriptで(ブラウザの)別ウインドウを開こう
…で、いきなりFlashのActionScript講座とかやっちゃうわけですよ。ただ、設定としてはやはり決めなきゃまずいので、今回は「初級編」です。良く掲示板などでもあるFAQ的な存在になる可能性もありますが、その「まとめ」という意味でも載せていこうと思います。初級第一回は、ActionScriptとJavascriptの連携ですね。別ウインドウを開きたい場合ではなくても、単純にFlashとJSの連携の練習にもなるはずですので、やった事ない方はお試し下さい。
※各セクション毎に、最初に出てきた時を除き、2回目以降は単語を略して記載しています。
ActionScript=AS/Javascript=JS など
※また、各ASは見た目を分かりやすくするためのインデントに半角スペースを使っています。
そのままのコピー&ペーストで動かない場合は『半角スペースを除去』してください。
※ベータ版だからか分かりませんが、スクリプトの途中でへんな改行とか入る場合があります。
コピーする際はお気を付けください。
■Flashから別ウインドウを開きたい
良くある手法ですが、やり方は大きく分けて2種類。Flash上で直接JSを記述するパターンと、Flashを配置したHTML側に設定したJSをコール(呼ぶ)する手法。まずは『Flash上で直接JSを記述するパターン』を見てみましょう
□□□ Flash側でJSまで記述する場合
まずはボタンに仕込む場合がほとんどだと思われますのでOn()と併用して記述しておきます。
on(release){//ボタンが押された時(正確にはマウスボタンを離した=決定の意思表示をした時)
getURL("javascript:newwin=window.open('ファイルのURL','ウインドウ名','width=幅,height=高さ');void(0);");
}
なんて感じです。ファイルのURLの場所に、新しく開いたウインドウに最初に表示させたいデータのURLを記述してください。例えばindex.htmlだったり、../menu.htmlだったり。widthとheightは新しく開くウインドウの縦横のサイズ指定です。直接数値を指定して構いません。幅500pixel×高さ300pixelで開きたい場合にはwidth=500,height=300としてあげてください。
その他、属性を追加する事もできます。その他の項目と言えば以下のようなものがあります。属性を増やしたい時は「,」で区切って追加していきます。欲しいものだけ追加しましょう。
・toolbar=no ウインドウにツールバーを表示させるか否か no(または0)/yes(または1)
・location=no ロケーションバーを表示させるか否か no(または0)/yes(または1)
・directories=no ディレクトリバーを表示させるか否か no(または0)/yes(または1)
・scrollbars=no スクロールバーを表示させるか否か no(または0)/yes(または1)
・status=no ステータスバーを表示させるか否か no(または0)/yes(または1)
・menubar=no メニューバーを表示させるか否か no(または0)/yes(または1)
・resizable=no リサイズ可能かどうか no(または0)/yes(または1)
・left=0 新しく開くウインドウの横方向の位置 画面の左上を0(基準)とする 単位:ピクセル
・top=0 新しく開くウインドウの縦方向の位置 画面の左上を0(基準)とする 単位:ピクセル
□□□ Flash側からHTMLに設定したJSをコールしてウインドウを開きたい
こちらもボタンとの併用で良いと思います。こちらはFlash側に記述するものと、HTML側に記述するものと別れます。一瞬面倒だと思うかも知れませんが、後からウインドウのサイズや属性を変更したいと思った時、Flashアプリケーションを起動せずとも、該当のHTMLをメモ帳やSimpleTextで開くだけで容易に修正できるメリットがあります。
---Flashのボタンに記述
on(release){
getURL("javascript:openNewWin();");
}
---HTML(HEAD内など)に記述
function openNewWin(){
newwin=window.open("ファイルのURL","ウインドウ名","width=幅,height=高さ");
}
ここで気になるのは「openNewWin()」という関数ですが、これは『私が勝手に作ったもの』です。名前は他の命令や予約語と呼ばれる、既に使用されている文字列と重複しなければ、どんな名前を付けても構いません。ただし英数字だけにしてください。短くて、自分が分かるのであれば…
→ getURL("javascript:wOpen();");//wOpenという関数を作った場合↓
→ function wOpen(){
newwin=window.open("ファイルのURL","ウインドウ名","width=幅,height=高さ");
}
でもいいでしょう。ちなみに、こちらも『Flash側でJSまで記述する場合』で説明した『属性』は、もちろん追加可能ですので、好きなように試してみてください。
間違い・疑問・質問などありましたらコメントください。宜しくお願い致します。
|