- ベストアンサー
FlashMX2004について質問です。
FlashMX2004について質問です。 ムービー内でボタン押下した際に別シーンor別フレームに移動したいと考えていのですが 実際はボタン押下しても、何もおきません。 (ボタン押下するフレームで、stop()発行しているのが問題?) 文法チェックでもエラーとならないため、原因がわかりません。 どなたか教えてください。 ソースは以下の通り。 on (release) { gotoAndPlay(133) }
- みんなの回答 (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 の場合はさほど影響はありませんが 他のソフトだとこの辺も厳密に書かなければ動作しないこともあります。
お礼
丁寧な回答ありがとうございます! ボタンについてですが、コンポーネントパネルから放り込んだ状態なのでムービークリップでもボタンでもありませんでした。(コンパイズ済みクリップという表現で良いのかな?) また、そのボタンも特定のフレームにしか存在してませんでした。 (ソースで指定しているフレームには存在していない) >本当に on (release) を 「押下したとき」 だと理解していたら クリック=押下という意味で書きました。紛らわしい書き方で申し訳ありません。 また、セミコロンの指摘まで色々とありがとうございます。 指摘を参考に修正していきたいと思います。