• ベストアンサー

FLASHでのループの設定について

FLASHでアニメーションつくっているんですが、複数のシーンをループの回数をそれぞれ違わせてループさせたいのですが、たとえばシーン1を2回くり返してシーン2に移り、シーン2を3回くり返えすというループをつくる場合どのようなアクションの設定をしたらよいのでしょうか。マニュアルみてもよく理解できませんでした。どなたかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.4

度々登場しています、DPEです ^^; loop_count、というのは私が定義した変数の名前で、Flashに最初からある命令ではありません。(当然ですが、命令のリストには載っていません) 変数の名前と中身は、自分で好きなように決めることができます。 例えば、loop_count ではなく loop_times という名前にしても構いませんし、今回のような数値だけでなく、文字列や、他の変数を含む計算式(この場合は、式の結果が変数に保持される)などを記憶させることもできます。 ノーマルモードから変数を入力するには、「アクション」の中の set variable を使います。スクリプトの編集画面にドラッグすると、名前と値を入力するパネルが表示され、変数の名前と値を設定できるようになります。 (ただし、変数の後に” = ”が自動で入力されてしまうようなので、今回のように++演算子を使う場合などは少々不便ですが) 変数の詳しい使い方は、市販の解説書等を参考にして下さい。

psypsy
質問者

お礼

DPEさん詳しく教えていただいてありがとうございました。難しそうなのでなんとなく踏み込めなかったアクションスクリプトに今回の事で親しみを覚えました。これもDPEさんのおかげです。やさしいアクションスクリプトの入門書からはじめてみようと思います。ありがとうございました。

その他の回答 (3)

  • DPE
  • ベストアンサー率85% (666/776)
回答No.3

#2で回答しました、DPEです。 よくある間違いは、変数名やシーン名の指定ミスです。 Flashのデフォルトのシーン名は、「シーン 1」というように、”シーン”と番号の間に半角のスペースが入っているようです。 エキスパートモードで手動で入力していると、このスペースを見落としがちです。また、デフォルトのシーン名には半角の数字が使われていますが、半角と全角とでは、同じ数字でも違うシーン名とみなされます。 デフォルトのシーン名をお使いでしたら、この点を確認してみて下さい。ノーマルモードに切り替え、リストボックスから選択すると、確実に指定できます。 それから、gotoAndPlay で、フレーム番号を指定せずシーンだけ指定すると、文法上はエラーにはなりませんが、シーンの移動が正常に行われません。この点も、合わせてご確認下さい。 もう1つ考えられるのは、loop_countが正しく機能していない可能性です。  loop_count++; の後に、  trace(loop_count); というアクションを設定して、ムービーをプレビューしてみて下さい。 出力ウィンドウに、  1  2 と表示されれば、ループ回数は正常にカウントされています。 1 や 0だけが延々と表示される場合は、回数が正しく保持されていません。考えられるのは、変数名に誤りがある・何らかの原因でシーン1のフレーム1に戻っている、などです。 (フレーム1では loop_count に0を入れているので、フレーム1に戻るとループの回数がクリアされ、 if 文の条件が常に不成立になるため、いつまでもシーン2が再生されないことになります) else 以下でシーン1のアニメを繰り返す際に、フレーム2ではなく1に戻るようになっていないか、または、先述のようにシーン名の記述に誤りはないか、確認してみて下さい。 ちなみに、traceアクションは用が済んだら削除してもいいのですが、「パブリッシュの設定」で「トレースアクションを省略」にチェックを入れると、パブリッシュの際には出力されなくなります。トラブルの原因探しに便利なアクションですので、上手く利用して下さい。

psypsy
質問者

補足

DPEさん度々の回答有難うございます。ノーマルモードでシーンとフレームを入力し直したらできました。ありがとうございました。あとひとつ質問があるのですが、ノーマルモードではloop_countの命令はリストにないからエキスパートモードで手動でloop_countのスクリプト書いてうまくいかなかったらシーンなどノーマルモードで入力するという手順でやるしかないんですよね。それともノーマルモードでloop_countを入力できるのでしょうか。さがしてもないのですが。しつこくてすいません。よろしくお願いします。

  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

ループ回数を数えるための変数を用意して、ループするごとに変数の数値を+1し、それが一定数に達したら次のシーンを再生する、という方法はいかがでしょうか。 例えば、シーン1のフレーム1に、  loop_count = 0; というアクションを設定して、loop_countという変数を用意します。この変数で、何回ループしたかを記憶するわけです。最初は1回もループしていないので、初期値として0を入れておきます。 次に、フレーム2からアニメを作り、その最後のフレームに以下のようなアクションを設定します。  // ループ回数を+1する  loop_count++;  // 2回ループしたらシーン2へ、  // それ以外はシーン1のアニメを再生  if (loop_count == 2)  {   gotoAndPlay("シーン2",1);  }  else  {   gotoAndPlay("シーン1",2);  } シーン2でも、これと同様にアクションを設定します。シーン2を3回繰り返したいのであれば、   if (loop_count == 2) の 2 の部分を 3 に変えて下さい。 なお、gotoAndPlayの移動先になっているフレームには、フレームラベルを付けておくと便利です。

psypsy
質問者

補足

ていねいな回答ありがとうございます。さっそくやってみたのですがシーン1がずっとくり返されてシーン2に行きません。スクリプトにエラーはないとのこと。どこか基本的なミスがあるのでしょうか?予想されそうな間違いなどあればお教えください。おねがいします。ちなみにエキスパートモードははじめて使いました。

  • marvelous
  • ベストアンサー率51% (42/81)
回答No.1

Flashのバージョンがわからないのでアレですが、 ここらへんが参考になるかと思います↓

参考URL:
http://www.fumiononaka.com/TechNotes/Flash/FN0110001.html
psypsy
質問者

お礼

参考URLのぞきました。まだわたしのレベルではなんのことやら状態でしたが、今後参考にできればと思います。これから少しずつ勉強してみます。ありがとうございました。

関連するQ&A

  • FLASHでループ再生を制限するAS

    Flashで音楽に合わせループ再生するアニメーションを作っています。 Web等で調べたActionScriptを使い音楽に合わせた回数で止まるように入力したつもりですが、止まらず、またループ再生してしまいます。 どのような記述をすればよろしいのでしょうか? 複数のレイヤーがあるので、1フレーム目に var loop_cntA:Number = 0; とloop_cntAと変数を宣言して、 最後のフレームに loop_cntA = Number(loop_cntA)+1; if (Number(loop_cntA)<25) { gotoAndPlay(1); } else { stop(); } と入力し24回目までループするように設定したつもりです。 しかし、止まってくれず何度もループしてしまいます。 どのように記述するのが正しいのでしょうか? ご指導お願い致します。

  • Flashでストップするようにしたい。

    Flashでアニメーションがループする画像を 作っています。 マウスがロールオーバーした際にそのアニメーション がストップするようにしたいのですが、 どのようにアクションを設定したらいいので しょうか? お願いします☆

  • FLASHのループ

    こんにちわFLASH超初心者です すごい基本的なことだと思うのですが書籍、ネットで答えが見つからずご質問させていただきます 作り終えたFLASHを表示側でループさせないようにするにはどうすればよいのですか? パブリッシュ設定でループ再生のチェックをはずしてもブラウザでみるとループしています 作成時点でなにか「終了フレーム」みたいなものがあるのでしょうか??まったく検討がつきません またブラウザでループ再生のメニューが表示されなくする方法はあるのでしょうか? よろしくお願いいたします

  • フラッシュアクションスクリプト 繰り返し処理について

    こんにちは フラッシュのループ処理にして質問です。 フラッシュでアニメーションを作ったのですが全体のアニメを3回だけ繰り返してストップさせるように処理したいのです。 ヘルプページを見てfor関数を試してみましたができませんでした。 どのようにアクションスクリプトを組み込めばできるのでしょうか? 教えてください。 よろしくお願いします。

  • FLASHのループ再生を止めたい

    こんにちは。 FLASHを作って最後の画像で止めてループように、loop="false"を使いました。 たしかに、最後の画像でとまるのですが、 ブラウザを再読込をすると FLASHがループしてしまいます。 右クリックでループ再生のチェックがはずれません。 なぜ再読込したときのみ、ループするのでしょうか。 どこかに設定があるのでしょうか。 よろしくお願いします。

  • フラッシュのループをとめたい

    はじめまして。 過去ログも観たのですが、どうしてもわかりません。 フリーモーションというソフトでフラッシュムービーを作っています。 それでアップしてみるとループがとまらず、困っております。 「最終フレームのアクションにstop();を入れる」 と、いう回答を拝見したのですが、 フリーモーション内の、どこが最終フレームの部分になるのか 判らず、質問させていただきました。 宜しくお願いします。

    • ベストアンサー
    • Flash
  • Flash MXで、特定のレイヤのみをループさせたい

    タイトルのとおりなのですが、Flash MXで特定のレイヤのみをループさせてアニメーションを作ることは出来るでしょうか。 もし、可能ならその方法をお教えください。 よろしくお願いします。

  • FLASHで複数シーン共通のループMUSIC

    今作っているFLASHで5つのシーンがありまして シーン2から5までにループした音楽を流しつづけたいのですが、 シーンにまたがって曲を流しつづけるにはどうしたらよいのでしょうか? お手数ですがよろしくお願いします。

  • 2回ループさせるアクションスクリプトについて

    教えてください! flashをあまりつかったことがないのですが、事情でflashを使ったバナーを作っています。2回ループさせて停止にしたいのですが、どんなアクションスクリプトを書けばいいのでしょうか? ネット上で調べてみたのですが上手く探せません。 宜しくお願いします!

  • FLASH: ボタンの無効化

    FLASH初心者です。 FLASHでアニメーションを作成しており、その画面内にボタンを配置してます。 アニメーションが全て終了するまで、ボタンを無効にしたいのです。 どの様にアクションを設定すれば良いでしょうか? よろしくお願い致します。

専門家に質問してみよう