- ベストアンサー
ボタンで各コンテンツへ移行させたい
よくアニメとかのオフィシャルサイトみたいに、ボタンをクリックすると各コンテンツが表示サイトを作ことになりました。 このサイトをご覧になるとわかると思いますが、 http://www.rideback-anime.jp/rideback.html Flashのみで各コンテンツへ移行させるにはさせればよいのでしょうか? もう少しいいますと、 ちなみに従来みたいにHTMLをツリー型にしファイル間を行き来するのではなく、 Flashファイル1つにまとめたいのです。 ご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1 です。 説明する時間がとれたので, #1に書いた内容を具体的な例を示して説明します。 ただし, Flash作成ソフトとして Macromedia(現Adobe)の Flash 5 以上を持っているという前提での説明です。 他のソフトの場合は,まるっきり作成方法などが違う可能性が大きいです。 また同じMacromedia(現Adobe)の Flashでも Flash 4 以下の場合はまるっきりスクリプトなどが違います。 下の図↓のように, 3つのアニメーションシーンからできているものを作成したとします。 ◎ フレーム1~10 「赤アニメ」…赤い●▲■があって赤▲が動くアニメ ◎ フレーム11~20 「緑アニメ」…緑の●▲■があって緑■が動くアニメ ◎ フレーム11~20 「青アニメ」…青の●▲■があって青●が動くアニメ また,それぞれのアニメを見るための3つボタン 「赤へ」ボタン,「緑へ」ボタン,「青へ」ボタン を用意したとします。 「赤アニメ」終了時には, タイムラインがそれ以上再生されないように停止させる必要があります。 これをするには, 「赤アニメ」の最終フレームである フレーム10 をキーフレーム(空白キーフレーム)にして --------------------------- // このタイムラインを停止 stop(); --------------------------- と書けば良いです。 この stop(); を書いたフレームでアニメーションが停止しますから, 勝手に次のアニメ(「緑アニメ」)が再生されずに済むようになります。 「緑アニメ」終了時も,「青アニメ」終了時も同じです。 つまり, フレーム20 も フレーム30 もキーフレームにして --------------------------- // このタイムラインを停止 stop(); --------------------------- をそれぞれ書きます。 === === === === === === === === === 次にボタンですが, このボタンの説明が厄介です。 上の stop(); は, Flash 5 以上の ActionScript1.0 以上であれば, どのバージョンも共通で使えますが, ボタンアクションはぜんぜん違います。 === === === まずは,Flash 5 以上を使用していて, ActionScript1.0(2.0でも可)を使用する場合の ボタンアクションのスクリプト例を書きます。 ※ Flash 5 以上とは,今現在, Flash 5,Flash MX,Flash MX 2004系,Flash 8系, Flash CS3 Professional,Flash CS4 Professional のことです。 ※ ActionScript3.0 と 2.0以下の混在はできません。 Flash CS3 Professional 以上をお持ちの場合は, パブリッシュ設定の Flash タブで スクリプトの欄を ActionScript1.0 または 2.0 にした場合です。 「赤へ」ボタンをクリックしたときは, 「赤アニメ」が再生されれば良いわけですから, 「赤へ」ボタンを選択した状態で アクションパネルに次のように書きます。 ------------------------------------ // このボタンをクリックした時 on (release) { // このボタンがあるタイムラインをフレーム1に進めて再生 gotoAndPlay(1); } ------------------------------------ これで,「赤へ」ボタンがクリックされたとき, フレーム1 から再生が始まるので, つまり「赤アニメ」が再生されます。 「緑へ」ボタンをクリックしたときは, 「緑アニメ」が再生されれば良いわけですから, 「緑へ」ボタンを選択した状態で アクションパネルに次のように書きます。 ------------------------------------ // このボタンをクリックした時 on (release) { // このボタンがあるタイムラインをフレーム11に進めて再生 gotoAndPlay(11); } ------------------------------------ これで,「緑へ」ボタンがクリックされたとき, フレーム11 から再生が始まるので, つまり「緑アニメ」が再生されることになります。 「青へ」ボタンも同様。 「青へ」ボタンを選択した状態で アクションパネルに次のように書きます。 --------------------------------------------- // このボタンをクリックした時 on (release) { // このボタンがあるタイムラインをフレーム21に進めて再生 gotoAndPlay(21); } --------------------------------------------- これで,「青へ」ボタンがクリックされたとき, フレーム21 から再生が始まるので, つまり「青アニメ」が再生されることになります。 === === === 次に,Flash CS3 Professional 以上を使用していて, ActionScript3.0 を使用する場合の ボタンアクションのスクリプト例を書きます。 ActionScript3.0 ではボタン自体にスクリプトを書くことはできません。 そこでまずは 「赤へ」ボタン,「緑へ」ボタン,「青へ」ボタンにそれぞれインスタンス名を付けます。 「赤へ」ボタンには 「red_btn」 「緑へ」ボタンには 「green_btn」 「青へ」ボタンには 「blue_btn」 というインスタンス名をそれぞれに付けることにします。 そして,タイムラインの フレーム1 の空白キーフレームに次のようなスクリプトを書きます。 //////////////////////////////////////////////////////////////////// // red_btn にイベントリスナーの追加(イベント:クリック,実行関数:playRedAnime) red_btn.addEventListener(MouseEvent.CLICK,playRedAnime); // 「赤アニメ」を再生させる関数 playRedAnime を定義 function playRedAnime(evt:Event):void { // このタイムラインをフレーム1に進めて再生 gotoAndPlay(1); } // green_btn にイベントリスナーの追加(イベント:クリック,実行関数:playRedAnime) green_btn.addEventListener(MouseEvent.CLICK,playGreenAnime); // 「緑アニメ」を再生させる関数 playGreenAnime を定義 function playGreenAnime(evt:Event):void { // このタイムラインをフレーム11に進めて再生 gotoAndPlay(11); } // blue_btn にイベントリスナーの追加(イベント:クリック,実行関数:playBlueAnime) blue_btn.addEventListener(MouseEvent.CLICK,playBlueAnime); // 「青アニメ」を再生させる関数 playBlueAnime を定義 function playBlueAnime(evt:Event):void { // このタイムラインをフレーム21に進めて再生 gotoAndPlay(21); } //////////////////////////////////////////////////////////////////// これで, ActionScript1.0 と ActionScript3.0 での 簡単なサンプル例は出来上がりです。 (ActionScript1.0 用のが使えるので ActionScript2.0 用を飛ばしていますけど。 ) しかし,これらの欠点は, 途中のアニメーションの長さを変えると, (たとえば「赤アニメ」の長さを15フレームに変えると,) それ以降の開始フレームもすべて後にずれるので, ボタンアクションを全て変更しなければならなくなることです。 そうならないように, フレームには「フレームラベル」という「ラベル名」を付けて, // このタイムラインをラベル「red」に進めて再生 gotoAndPlay("red"); のようにすることもあります。 この辺は好みや場合などによります。 この辺が Flash のだいたいの始まり(=スタートライン)でしょうね。 この説明では, _root または root (メインのタイムライン) を使っただけの 極基本的な Flash の使い方しか書いていませんが, さらにムービークリップ内タイムラインを使うと,もっともっと色々なことが可能になります。 ムービークリップ内タイムラインを使うにしても, stop(),play(),gotoAndStop(),gotoAndPlay() が 一番の基礎(基盤の意味)だと思います。 あとは,イベントハンドラ(イベントリスナー)です。 この辺が基礎です。 野中文雄さんという Flash界で超著明な方が 「イベントを制する者、ActionScript 3.0を制す」 とおっしゃっています。 私は, 「ムービークリップを征する者,Flashを征す」 だと思っています。 なお,_root および root もムービークリップの一種です。 とにかく stop(),play(),gotoAndStop(),gotoAndPlay() のあとは, この辺(イベントやムービークリップ)が重要です。
その他の回答 (1)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
Flash をしはじめるとすぐに stop() や play() や gotoAndPlay() や gotoAndStop() を使うと思います。 これらは アニメーションの再生箇所や再生・停止を指示する関数やメソッドです。 これらでできると思いますよ。 お持ちの Flash作成ソフト 自体も またそのバージョンも またお使いの ActionScript のバージョンも 書かれていらっしゃらないので何とも言えませんが, ActionScript1.0 や 2.0 では, この辺りでできると思います。 gotoAndStop();とgotoAndplay();とは?アクションスクリプト http://www.1art.jp/flash/le/lesson14/lesson14.htm onイベントハンドラ http://1art.jp/flash/le/lesson16/lesson16.htm その他方法は色々ありますが, とりあえずこれくらいはできないとFlashができないに等しいという方法例です。
お礼
ご教授を参考に早速制作していたらお返事が遅くなりました。 いままでこれまでに丁寧にかつ、わかりやすく教えてくださった方はいません!私はよい方に教えてもらい非常にラッキーだと思います。またわからないときがあれば、アドバイスをいただければ光栄です。今回は非常にわかりやすいアドバイスをご教授されたことを心からお礼申し上げます。