• ベストアンサー

FlashMX2004について質問です。

FlashMX2004について質問です。 ムービー内でボタン押下した際に別シーンor別フレームに移動したいと考えていのですが 実際はボタン押下しても、何もおきません。 (ボタン押下するフレームで、stop()発行しているのが問題?) 文法チェックでもエラーとならないため、原因がわかりません。 どなたか教えてください。 ソースは以下の通り。 on (release) { gotoAndPlay(133) }

  • Flash
  • 回答数1
  • ありがとう数3

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

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

> ソースは以下の通り。 > on (release) { >   gotoAndPlay(133) > } って,それはどこに書いたのでしょうか? ボタン(ボタンシンボルに変換したボタンインスタンス)ですか? ムービークリップ(ムービークリップシンボルに変換したムービークリップインスタンス)ですか? この「肝腎な部分」を明記されていないということは, これを「肝腎だと思っていない」からだと思います。 ボタンにそのスクリプトを書いた場合, そのボタンが存在するタイムライン(_rootなど)のフレームを 133 フレーム目に進めて再生させることになります。 ボタンが存在するタイムライン(_rootなど)は 少なくとも 133 フレーム目以上存在するのでしょうか? ムービークリップにそのスクリプトを書いた場合, そのムービークリップ内のタイムラインのフレームを 133 フレーム目に進めて再生させることになります。 そのムービークリップ内のタイムラインは 少なくとも 133 フレーム目以上存在するのでしょうか? その他 > 実際はボタン押下しても、何もおきません。 厳密にはボタンを押下しても何もおきませんよ。 on (release) は 「押下したとき」 ではなく 「押下してその押下したものの上で放したとき」 です。 つまり,いわゆる 「クリックしたとき」 です。 例えば 「押下したとき」 = on(press) などでそのボタンなどが存在しないフレームにジャンプさせた場合, on (release) の命令を聞く者は存在しなくなるので, その場合も gotoAndPlay(133) は実行されなくなります。 単なる書き間違いだと良いですが 本当に on (release) を 「押下したとき」 だと理解していたら 怪奇現象が多発する可能性がでてきます。 さらにその他 これは Macromedia Flash MX 2004 の場合はさほど影響はありませんが gotoAndPlay(133) ではなく gotoAndPlay(133); が正解です。 文末にセミコロンが要ります。 Flash MX 2004 の場合はさほど影響はありませんが 他のソフトだとこの辺も厳密に書かなければ動作しないこともあります。

mg0519
質問者

お礼

丁寧な回答ありがとうございます! ボタンについてですが、コンポーネントパネルから放り込んだ状態なのでムービークリップでもボタンでもありませんでした。(コンパイズ済みクリップという表現で良いのかな?) また、そのボタンも特定のフレームにしか存在してませんでした。 (ソースで指定しているフレームには存在していない) >本当に on (release) を 「押下したとき」 だと理解していたら クリック=押下という意味で書きました。紛らわしい書き方で申し訳ありません。 また、セミコロンの指摘まで色々とありがとうございます。 指摘を参考に修正していきたいと思います。

関連するQ&A

  • FlashMXでのスクリプトの質問。

    FlashMXでのスクリプトの質問です。 1~30フレームまで5回繰り返して、その後31フレームに移り最後の60フレームでストップするというアクションをさせるには、どのようなスクリプトを使えばいいのでしょうか? 30フレーム目に1フレーム目に戻り5回繰り返すというアクション(これが分かりません。)、その後、6回目には31フレームに移り(gotoAndPlay(31);でしょうか?)そのまま最後の60フレームまで進み、60フレーム目で停止(stop();)。 これくらいしか私には分かりません。 どうか知恵をお貸し下さい。 宜しくお願いします。

  • FlashMXで「goto」の使い方。

    これってグラフィックソフトでいいのかな?ホームページ作成? それはさておき… シーン1にシンボルを1つ置き、ムービークリップにしました。ムービーを再生するため一旦「stop();」させます。 そのムービーを全て再生し終わるとシーン1のフレームラベル「main」に飛ぶようにしたいと考えています。 ムービークリップの最後に「gotoAndPlay("シーン 1", "main");」とするのですが、シーン1に戻ってくれません。(ムービークリップを繰り返し再生するだけ) どうしたら上のシーンに戻ることが出来ますか?

  • ボタンのアクションについて

    flashの初心者です。 シーン1とシーン2を作り、シーン2の中に、文字&ボタンインスタントを一つのフレームに入れ、モーショントゥイーンをかけました。 そして、その中のボタンインスタントにアクションを入れました。 on (release) {gotoAndPlay(350);} ボタンを押し話したときに、350(シーン2)のフレームへ飛んで再生するように設定しました。 しかし、ちゃんと作動してくれません。 シーン2の205からスタートしてしまいます。 シーン1はフレーム数は145まで入ってます。 よく見ると、この145と205を足すと350になります。 つまり、シーン1からシーン2にかけて350番目と言う様になってしまいます。 だから、アクションを on (release) {gotoAndPlay(495);} にすると、きちんと動いてくれます。 シーンを分けているときは、こう言うように足さないといけないのでしょうか? シーン2の350と言うように設定はできないのでしょうか? on (release) {gotoAndPlay("シーン2"350);} では出来ませんでした。 モーショントゥイーンをかけていない、普通のボタンは、普通に設定(145を足さない)でうまく動いてくれます。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • FLASHでSKIPさせるときのAS表記について

    今回フラッシュで初めて、skipボタンを作成しました。 アクションスクリプトの設定で on (release) { gotoAndPlay("scene5",1); } では普通に動作するのですが、 on (release) { gotoAndPlay("scene5"); } ではうまく作動しませんでした。 前任者が以前に作ったものでは 後者の表記の仕方(シーン名のみの表記)でボタンがうまく作動していたので、 今回自分の作ったものでうまくいかない理由が知りたいです。 関係ありそうな詳細を以下に書きます。 ・scene1~scene5の5シーンで構成 ・ボタンは透明ボタンとして作成 ・scene5は2フレームで、2フレーム目で停止するように「stop();」を入れています。 どうぞよろしくお願いします。

  • FlashMXでタイムラインをとばしたい

    FlashMXのスクリプトで質問です。 ボタンのアクションスクリプトで、ロールアウトするとタイムラインの20フレーム目に戻ってプレイし、40フレーム目まで行ったら、60フレーム目まで飛んで60フレーム目以降をプレイする、 と言うような指定をしたいのです。 on (rollOut) {gotoAndPlay("20");} まではできるのですが、40→60の間をとばす方法が分かりません。 まず最初に0→60を表示させたいので、フレームへのアクション指定は避けたいのです。 またswfファイルも一つにまとめたいのです。 ボタンへのアクション指定で出来る方法が一番いいのですが、良い方法がありましたら教えてください。 よろしくお願いいたします。

  • ムービークリップ内に配置した別のムービークリップの再生

    こんばんは。 ムービークリップ内に配置した別のムービークリップを ボタンを押したときに常に1フレーム目から再生するように させたいのですが。一度読み込んでしまったら 最初に戻すことができません。 どうしたらいいのでしょうか? on(release){ French.gotoAndPlay(1); } とかしてみたけど駄目でした。 初心者で申し訳ありませんがよろしくお願いします。

    • ベストアンサー
    • Flash
  • FLASHの誤作動について

    シーン別になっているムービーを作成しました。 シーン1でNowloading表示、 シーン2からボタンで on (release) { gotoAndPlay ("シーン名", フレーム数); } として各シーンにとべるようにしてあります。 問題は、アップロードしてから気が付いたのですが はじめにシーン2のボタンを押して他のシーンへ とぼうとすると、他のシーンまでが次々と順番に 表示されてしまう事です。 各シーンにはフレームにthis.stop()も設定して あるのですが・・・。 最初だけで、2回目以降は誤作動せず、 ローカルでの動作確認ではこういった事が起こらない ので、ムービーが完全に読み込まれていない為かと 思い、シーン1のNowloadingのscriptを チェックしなおしたのですが こちらのサイトで何回か回答が出ているとおりに、 ちゃんとgetBytesでサイズ取得しておりました。 それでも誤作動するのは、他にどんな原因が 考えられますでしょうか? どうかよろしくご指導くださいませ。 *ちなみにファイルサイズは370KBもあるのですが 重過ぎるための誤作動、もありえますか?

  • Flash判定アクションスクリプトの記述を教えてください。

    仕事の都合でFlash(Versionは8)を扱わなければいけなくなり只今勉強中兼HP製作中です。 行き詰まっているので教えてください。 現在、シーン1のタイムライン1フレーム目にいます。 ステージ上には、 ムービークリップが4つ(名前 m_A , m_B , m_C m_D)配置されています。 ボタンが5つ(名前 b_A , b_B , b_C , b_D , b_Z)配置されています。 ボタンb_Aには on (release) { with (_root.m_A) { play(); } } と記されていて、ボタンを押すとm_Aは再生されて10フレーム目でストップします。 ボタン B~D も同様にボタンを押すとムービークリップB~Dもそれぞれ再生されて10フレーム目でストップします。 ムービークリップ m_A~Dのフレーム10の中には、さらにボタン b_Xがあり、 それを押すとさらに再生されて20フレーム目までいったところで、gotoAndPlayで1フレーム目に戻りストップします。 シーン1のタイムライン1フレーム目に配置されている、ボタンb_Zを押すと、 ムービークリップ m_A~Dのタイムライン1フレーム目にいるものはそのままで、 そして、10フレーム目でストップしていたものは、 再生されて20フレーム目までいったところで、gotoAndPlayで1フレーム目に戻りストップになったところで、 (m_A~Dが全てタイムライン1フレーム目に行ったところで、) シーン1のタイムライン1フレーム目から再生されて、 タイムライン10フレーム目でストップといった命令を書きたいのですが、 どうやって指定してやればよいでしょうか? 多分、if文等を使用するんでしょうが、さっぱりわかりません。 詳しく教えていただければ、幸いでございます。

  • このFLASHファイルが動かないわけは…。

              1  2  3  4  5  6  7  8  9  10 a         ●|●                          ※ボタン。「1」にthis stopが入ってます b         ●                             ※ムービー c         ●   |●|●                    ※「3」にthis stop。ボタン d               ●                        ※ムービー。シーン上の名前は「vision」 cのボタンに on(press){ _root.vision.gotoAndPlay(2); } on(press){ this.gotoAndPlay(3); } と入ってます。 dのムービークリップは           1  2  3  4  5  6  7  8  9  10 a         ●|●  > ● のような感じです。 ※「1」にthis stopが入ってます。 cのボタンをクリックしてもdのムービーがきちんと動きません。 どこがダメなのでしょうか?

  • Flash、ボタンが動かない!?

    Flashでコンテンツ制作中です。 ボタンが思うとおりに動きません。 まず、シーン1上に、レイヤー10枚400フレームほどでアニメーションを作っています。 まずは、あるボタンをクリックすると、他のフレームに移動するように作っています(移動はすべてフレームラベルをつけて移動しています)。 移動先はアニメーションなのでシンボルでアニメーションクリップ化しています。 そのアニメーションクリップはいくつかのボタンの集合体です。ボタンをクリックするとまた別のフレームに飛ばしたいのですが、うまく出来ません。 ボタン自体が動いていないわけではありませんでした。 on (release) {getURL("http://www.~~/");}にするとちゃんとページを表示します。 on (release) {gotoAndPlay("main");}とすると移動しません。 on (release) {gotoAndPlay("シーン 1", "main");} でもダメでした。 ラベルのスペル間違えではないとした場合、他に何かダメな理由が考えられることはありますか? よろしくお願いします。

専門家に質問してみよう