- 締切済み
FLASHのボタンアクションで質問です
・top ・about ・info 以上、の3つのボタン ・top_1 ・about_1 ・info_1 ・back_1 以上、4つのラベルの名前をつくった時 aboutのボタンを押した場合、 ラベルback_1に飛ばしてからラベルabout_1に飛ばすというような アクションスクリプトはどう記述すればいいでしょうか。 教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
ご使用の Flash のバージョンや,使用されるActionScript, また, パブリッシュするSWFの対象とするFlashPlayerのバージョンなどによって具体的なスクリプトは変わります。 Flash 関係で質問をされる場合は, バージョンを書かれないと回答がつかなかったり, ついてもトンチンカンな回答しか得られない場合が多々ありますから わかる範囲で良いので,とにかくバージョンを書くことが大切です。 バージョンに依存しない回答となると, 漠然とした書き方しかできませんが, ボタンクリック時に「ラベルの名前」を変数の値に代入して 「back_1」に飛んだ後,その変数の値のフレームにジャンプすれば良いと思います。 もしくは, ボタンクリック時に ラベルの名前とは別の値(たとえば "A","B","C")を変数に代入しておいて もし変数の値が "A" であれば top_1 へジャンプ もし変数の値が "B" であれば about_1 へジャンプ もし変数の値が "C" であれば info_1 へジャンプ のように if~else if文 を書いても良いと思います。 ただし, 「変数」というものの概念自体が存在するのが Flash 4(1999年発売版)からです。 Flash 3 (1998年発売版)以前でしたら上記2つの方法はどちらもとれません。 (ご使用の Flash がバージョン 3 以下であるということは通常考えられませんが。古すぎますね。) =============== バージョンがわからないので, 回答できるだけ具体的なスクリプトを回答してみます。 どのバージョンでも, だいたい下の図↓のようになっているものとします。 バージョンによってタイムラインの見かけも変わりますがその辺はなんとか雰囲気で見てください。 また,どのスクリプトも何も工夫していない基本的な書き方例です。 ◎ ---Flash 4 をご使用の場合--- 「top」ボタン自体には次のように書きます。 On (Release) Set Variable:"myLabel" ="top_1" Go to and Play ("back_1") End On 「about」ボタン自体には次のように書きます。 On (Release) Set Variable:"myLabel" ="about_1" Go to and Play ("back_1") End On 「info」ボタン自体には次のように書きます。 On (Release) Set Variable:"myLabel" ="info_1" Go to and Play ("back_1") End On そして back_1 の最終フレーム(図↓の青枠部分)には次のように書きます。 Go to and Play (myLabel) ◎ ---Flash 5 以上をご使用で ActionScript 1.0 でパブリッシュする場合--- 「top」ボタン自体には次のように書きます。 on (release) { // 変数 「myLabel」 に文字列 top_1 を代入 myLabel = "top_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); } 「about」ボタン自体には次のように書きます。 on (release) { // 変数 「myLabel」 に文字列 about_1 を代入 myLabel = "about_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); } 「info」ボタン自体には次のように書きます。 on (release) { // 変数 「myLabel」 に文字列 info_1 を代入 myLabel = "info_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); } そして back_1 の最終フレーム(図↓の青枠部分)には次のように書きます。 gotoAndPlay(myLabel ); ◎ ---Flash MX (Flash 6) 以上をご使用で ActionScript 1.0 でパブリッシュする場合--- 「top」ボタンには, 例えば 「top_btn」 というインスタンス名を付けます。 「about」ボタンには, 例えば 「about_btn」 というインスタンス名を付けます。 「info」ボタンには, 例えば 「info_btn」 というインスタンス名を付けます。 そしてボタンが存在するフレーム(図↓の赤枠部分)には次のように書きます。 stop(); top_btn.onRelease = function() { // 変数 「myLabel」 に文字列 top_1 を代入 myLabel = "top_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); }; about_btn.onRelease = function() { // 変数 「myLabel」 に文字列 about_1 を代入 myLabel = "about_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); }; info_btn.onRelease = function() { // 変数 「myLabel」 に文字列 info_1 を代入 myLabel = "info_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); }; そして back_1 の最終フレーム(図↓の青枠部分)には次のように書きます。 gotoAndPlay(myLabel ); ◎ ---Flash MX 2004 (Flash 7) 以上をご使用で ActionScript 2.0 でパブリッシュする場合--- 「top」ボタンには, 例えば 「top_btn」 というインスタンス名を付けます。 「about」ボタンには, 例えば 「about_btn」 というインスタンス名を付けます。 「info」ボタンには, 例えば 「info_btn」 というインスタンス名を付けます。 そしてボタンが存在するフレーム(図↓の赤枠部分)には次のように書きます。 stop(); // 変数の宣言 var myLabel:String; top_btn.onRelease = function():Void { // 変数 「myLabel」 に文字列 top_1 を代入 myLabel = "top_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); }; about_btn.onRelease = function():Void { // 変数 「myLabel」 に文字列 about_1 を代入 myLabel = "about_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); }; info_btn.onRelease = function():Void { // 変数 「myLabel」 に文字列 info_1 を代入 myLabel = "info_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); }; そして back_1 の最終フレーム(図↓の青枠部分)には次のように書きます。 gotoAndPlay(myLabel ); ◎ ---Flash CS3 (Flash 9) 以上をご使用で ActionScript 3.0 でパブリッシュする場合--- 「top」ボタンには, 例えば 「top_btn」 というインスタンス名を付けます。 「about」ボタンには, 例えば 「about_btn」 というインスタンス名を付けます。 「info」ボタンには, 例えば 「info_btn」 というインスタンス名を付けます。 そしてボタンが存在するフレーム(図↓の赤枠部分)には次のように書きます。 stop(); //変数の宣言 var myLabel:String; //top_btnにイベントリスナーを登録(イベント:クリック,実行関数:topClick) top_btn.addEventListener(MouseEvent.CLICK,topClick); // カスタム関数 topClick の定義 function topClick(evt:Event):void { // 変数 「myLabel」 に文字列 top_1 を代入 myLabel="top_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); } //about_btnにイベントリスナーを登録(イベント:クリック,実行関数:aboutClick) about_btn.addEventListener(MouseEvent.CLICK,aboutClick); //カスタム関数 aboutClick の定義 function aboutClick(evt:Event):void { // 変数 「myLabel」 に文字列 about_1 を代入 myLabel="about_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); } //info_btnにイベントリスナーを登録(イベント:クリック,実行関数:infoClick) info_btn.addEventListener(MouseEvent.CLICK,infoClick); // カスタム関数 infoClick の定義 function infoClick(evt:Event):void { // 変数 「myLabel」 に文字列 info_1 を代入 myLabel="info_1"; // "back_1" に進めて再生 gotoAndPlay("back_1"); } そして back_1 の最終フレーム(図↓の青枠部分)には次のように書きます。 gotoAndPlay(myLabel ); =============== このご質問は比較的簡単な(複雑ではない)質問ですから 私が回答できるだけのバージョンで一通り回答してみましたが, 不可能な場合もありますし回答する気にはならないので, 普通はこのような回答はしません。 無視して回答を書かない場合が多いと思います。
お礼
ご丁寧に画像までつけていただき、ありがとうございます。 これから、参考にして実際にやってみます。 バージョンはCS3のバージョン9でActionScript 2.0 でパブリッシュしていました。 質問もすべて初心者なため、お手数をお掛けしました。 次回からきちんとバージョンも記入します。 ありがとうございます。