性格いい人が優勝

      |1     |5   |10    |15   |20
レイヤー1 |▲*1*   |▲*2* |▲*3*   |▲*4* |▲*5* |
レイヤー2 |●>--→|●--→|●>--→|●--→|●--→|
レイヤー3 |●>--→|●--→|●>--→|●--→|●--→|


レイヤー1にはフレームラベルが記入されています。
1フレーム目のレイヤー2のボタンは
on(press){
gotoAndPlay("*1*");
gotoAndPlay("*2*");
}

1フレーム目のレイヤー3のボタンには
on(press){
gotoAndPlay("*1*");
gotoAndPlay("*3*");
}

としています。
こちらはきちんと正常に意図通りに動きます。


10フレーム目のレイヤー2には
on(press){
gotoAndPlay("*3*");
gotoAndPlay("*4*");
}

10フレーム目のレイヤー3には
on(press){
gotoAndPlay("*4*");
gotoAndPlay("*5*");
}

としてみましたが、こちらは正常に動きません。

指定の仕方としては誤っているでしょうか?
もし間違いでしたら正しい指定の仕方を教えてください。

A 回答 (3件)

フレームラベルBackを常に経由して、各個所へ移動するという感じでいいのでしょうか?


それなら、BacKの最後のフレームには
gotoAndPlay (hensuu);
hensuu = "tomare";

他の区分の最後のフレームは、
if(hensuu == "tomare"){
 stop ();
}else{
 gotoAndPlay (hensuu);
 hensuu = "tomare";
}
としておけば、できそうですが。
あとは早い段階でhensuuをtomareで定義しておけばバッチリでしょうか。

ただ、フレームラベルAやBの個所にgotoAndPlayを書く意味ってありますかね?AやBでも100%最後のフレームで止まるわけではないのかな?
とりあえず、gotoAndPlayで、移動したらすぐに変数を入れ替えるようにしたらいいと思います。
    • good
    • 0
この回答へのお礼

無事にできました!
ありがとうございました!!

お礼日時:2004/10/14 10:57

No.1様の通り、gotoAndPlayが2つあるのはおかしいと思います。


on(press){
gotoAndPlay("*1*");
gotoAndPlay("*2*");
}
がうまくいったのは、現在すでに"*1*"にいるため、無視されたからだと思います。
"*2*"のあと"*3*"に行かせたいなら、変数を立てたらどうでしょう。
前もってnextFr = 0;などと宣言しておいて、
on(press){
 gotoAndPlay("*2*");
 nextFr = "*3*";
}
と、ボタンを押したときにそれぞれを代入し、
*2*の最後(フレーム9)のストップのあとに
stop();
gotoAndPlay(nextFr);
とすれば、先に代入したフレームにとぶことができます。
もし、*2*のあとは*3*、*3*のあとは*4*、というふうに次に行かせたいフレームが固定の場合は、
フレーム9に直接
gotoAndPlay("*3*");
と書けばいいと思います。
    • good
    • 0
この回答へのお礼

なるほど、変数を使えばいいんですね。
やってみたら最初はいいんですが2回目以降が…。

「ボタン1」
「ボタン2」
とあって、それぞれ
●ボタン1
on(press){
gotoAndPlay("Back");
hensuu = "A";
}
●ボタン2
on(press){
gotoAndPlay("Back");
hensuu = "B";
}

とあったとします。
Backの部分のthis.stop();の箇所は

this.stop();
gotoAndPlay(hensuu);


としました。

これでクリックをすると、指定するAやBに行くのですが、
そちらの箇所にも
this.stop();
gotoAndPlay(hensuu);

が指定してあって、ループ状態になってしまいます。
この場合はどのようにしたらいいのでしょうか?

お礼日時:2004/10/13 16:42

これだけでは一体どうしたいのかよくわかりませんが、とりあえず、同じブロック(今回はon(press))の中にgotoAndPlayが2つあるっていうのはおかしいと思いますよ。

    • good
    • 0
この回答へのお礼

例えば一つのボタンを押したら
まず、「*2*」の箇所を実行させます。
(フレーム5から始まり、9で終了(this stop();がある)
その後、「*3*」の箇所を実行させたいのです。
この場合、どのように表記すればいいのでしょうか?

お礼日時:2004/10/12 08:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!