• 締切済み

FLASHのアクションスクリプトについて

こんばんは Adobe FlashCS4の初心者です。 ボタンを作り、次のページに移動する。という動作を行うにはどのようなスクリプトを書いたらいいでしょうか また、画面上に4つのボタンを設置し、4つがそれぞれに指定されたページに飛ぶようにするにはどうすればいいでしょうか 使用するのは「ActionSript3.0」です。 調べてもどうしてもわからないので質問させていただきました。 よろしくお願いします。

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1です。 > 「ページ」とは「フレーム」のことです。 > ボタンを押すと次のフレームに進む。 > ということをしたいです。 ということですが 「次のフレーム」とはどのフレームなのか具体的にわかりません。 また, そのフレームに進んで停止させたいのか,そのフレームから再生を開始させたいのかもわかりません。 ですからこちらが勝手に決めたフレームと進み方での例を回答します。 #1と同じ状況で ボタンは4つあってその4つのボタンには 「A_btn」「B_btn」「C_btn」「D_btn」というインスタンス名が付けてあるものとします。 「A_btn」クリック時には フレーム5 に進んで停止 「B_btn」クリック時には フレーム10 に進んで停止 「C_btn」クリック時には フレーム15 に進んで停止 「D_btn」クリック時には フレーム20 に進んで停止 というものを作るとします。 その場合の 「A_btn」「B_btn」「C_btn」「D_btn」があるフレームに書くスクリプト例です。 //--------------------------------------- //このフレームで再生停止 stop(); //「A_btn」クリック時に関数「onAClick」を実行 A_btn.addEventListener(MouseEvent.CLICK,onAClick); //関数「onAClick」の定義 function onAClick(e:MouseEvent):void { //フレーム5 に進んで停止 gotoAndStop(5); } //「B_btn」クリック時に関数「onBClick」を実行 B_btn.addEventListener(MouseEvent.CLICK,onBClick); //関数「onBClick」の定義 function onBClick(e:MouseEvent):void { //フレーム10 に進んで停止 gotoAndStop(10); } //「C_btn」クリック時に関数「onCClick」を実行 C_btn.addEventListener(MouseEvent.CLICK,onCClick); //関数「onCClick」の定義 function onCClick(e:MouseEvent):void { //フレーム15 に進んで停止 gotoAndStop(15); } //「D_btn」クリック時に関数「onDClick」を実行 D_btn.addEventListener(MouseEvent.CLICK,onDClick); //関数「onDClick」の定義 function onDClick(e:MouseEvent):void { //フレーム20 に進んで停止 gotoAndStop(20); } //--------------------------------------- フレーム○○ に進んで停止 ではなく フレーム○○ から再生 でしたら gotoAndStop(○○); の部分を gotoAndPlay(○○); に変えてください。

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> 次のページに移動する。という動作を まず Flash自体には通常「ページ」という概念がありません。 したがってこの「次のページに移動」の意味は 「別HTMLページを同窓で表示させる」という意味と捉えてよろしいですよね? > 4つのボタンを設置し、 > 4つがそれぞれに指定されたページに飛ぶようにする 以下では ファイル構造が次のようになっていると仮定した場合の話を書きます。  任意のフォルダ(サイト)   ├main.html(main.swfを表示)   ├main.swf(本題のFlash)   ├aaa.html   ├bbb.html   ├ccc.html   └ddd.html > 使用するのは「ActionSript3.0」です。 Actionscript 3.0 でしたら まずはボタンにそれぞれ個別のインスタンス名を付ける必要があります。 仮に「A」「B」「C」「D」という4つのボタンがあったとした場合 まずはステージ上の「A」のボタンを選択して プロパティインスペクタ(プロパティパネル)を表示させ たとえば「A_btn」というインスタンス名を付けます【図】↓。 「B」「C」「D」のボタンも同様に たとえば「B_btn」「C_btn」「D_btn」というインスタンス名を付けます。 それらのボタンがあるレイヤーとは別にレイヤーを挿入して それらのボタンがあるタイムラインの,ボタンがあるフレームのキーフレームに (例:メインのタイムラインの フレーム1 に), 次のようなスクリプトを書いて行きます。 //---------------------------------------- //各ページのURLRequestを作成 var A_req:URLRequest = new URLRequest("aaa.html"); var B_req:URLRequest = new URLRequest("bbb.html"); var C_req:URLRequest = new URLRequest("ccc.html"); var D_req:URLRequest = new URLRequest("ddd.html"); //「A_btn」クリック時に関数「gotoPageA」を実行 A_btn.addEventListener(MouseEvent.CLICK,gotoPageA); //関数「gotoPageA」の定義 function gotoPageA(e:MouseEvent):void { //「A_req」のページを同窓で開く navigateToURL(A_req,"_self"); } //「B_btn」クリック時に関数「gotoPageB」を実行 B_btn.addEventListener(MouseEvent.CLICK,gotoPageB); //関数「gotoPageB」の定義 function gotoPageB(e:MouseEvent):void { //「B_req」のページを同窓で開く navigateToURL(B_req,"_self"); } //「C_btn」クリック時に関数「gotoPageC」を実行 C_btn.addEventListener(MouseEvent.CLICK,gotoPageC); //関数「gotoPageC」の定義 function gotoPageC(e:MouseEvent):void { //「C_req」のページを同窓で開く navigateToURL(C_req,"_self"); } //「D_btn」クリック時に関数「gotoPageD」を実行 D_btn.addEventListener(MouseEvent.CLICK,gotoPageD); //関数「gotoPageD」の定義 function gotoPageD(e:MouseEvent):void { //「D_req」のページを同窓で開く navigateToURL(D_req,"_self"); } //---------------------------------------- こんな感じであとはパブリッシュすればできあがりです。 new URLRequest("aaa.html") などで指定するページですが, 上記のように相対パスでページを指定する場合 そのパスは SWF からのパスではなく SWF を貼り付けた HTML から(main.html から)のパスになります。 (理由:URLRequest とはブラウザに対するリクエストであるため。) ですから もし次のようなファイル構造になっていたとします。  任意のフォルダ(サイト)   ├main.html(main.swfを表示)   ├files(フォルダ)   │ └main.swf(本題のFlash)   ├aaa.html   ├bbb.html   ├ccc.html   └ddd.html この場合でも上のスクリプトのままで変更なしになります。 しかし もし次のようなファイル構造になっていたとします。  任意のフォルダ(サイト)   ├main.html(main.swfを表示)   └files(フォルダ)     ├main.swf(本題のFlash)     ├aaa.html     ├bbb.html     ├ccc.html     └ddd.html この場合は スクリプトを new URLRequest("files/aaa.html") のように変更する必要があります。

sak7jp
質問者

補足

こんばんは。書き方におかしな部分が多い中、とてもわかりやすい解答ありがとうございます。 疑問をもたれた場所を訂正し、再度質問失礼します。 「ページ」とは「フレーム」のことです。ボタンを押すと次のフレームに進む。ということをしたいです。 4つのボタンはそれぞれURLではなく、別のフレームに飛ぶように設定したいです。 フレームとボタン、アクションスクリプトのレイヤーはそれぞれ3つにわけてあります。 お手数おかけして申し訳ありませんが回答をお願いします。

関連するQ&A