- ベストアンサー
FLASHでSKIPさせる方法とは?
- フラッシュで初めてskipボタンを作成しました。アクションスクリプトの設定で特定のシーンに移動したい場合、gotoAndPlay関数を使用します。しかし、シーン名のみを指定してもうまく作動しないことがあります。
- 前任者が作ったボタンではうまく作動していたので、なぜ自分の作ったものではうまくいかないのか知りたいです。
- 関連する詳細として、5つのシーンで構成されており、ボタンは透明ボタンとして作成されています。また、特定のシーンで停止するように「stop();」が入れられています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
gotoAndPlay の移動先は、フレームの番号かフレームラベルのどちらかで指定できます。 フレームラベルとは、フレームに付けた名前のことです。 Flash MX 以降の Flash をお使いの場合は、フレームを選択した状態で「プロパティ」パネルを見てください。 右上の方に、<フレームラベル> という仮のテキストが入っている項目があります。 ここに何か名前を入力すると、そのフレームに名前が付きます。この名前のことをフレームラベルといいます。 フレームラベルは gotoAndPlay または gotoAndStop の移動先として利用できます。 フレームラベルを指定して移動する場合は gotoAndPlay( "フレームラベル" ); と、" " でくくって渡す決まりになっています。 ところで、gotoAndPlay はシーンを移動できるものとできないものの、2種類があります。 シーンを移動できる gotoAndPlay は、ステージに直接配置したボタンインスタンスに書く on アクションの中か、メインのタイムラインのフレームに設定するフレームアクションの中でだけ利用できます。 この gotoAndPlay の書式は、 gotoAndPlay( "シーン名" , フレーム番号もしくはフレームラベル ); ですが、シーン名は省略も可能です。 例えば gotoAndPlay( "scene5" ); と、パラメータを1つだけ書くと、これはシーン名ではなくフレームラベルの指定と見なされます。 この場合は、scene5 というラベルが付いたフレームがないと、この gotoAndPlay は正常に実行されません。 前任の方の書き方は、シーン名ではなくフレームラベルを使った指定だったのではないでしょうか。 例えばシーン5のフレーム1に scene5 というフレームラベルを付けておくと、シーン名とフレームを指定する代わりに gotoAndPlay( "scene5" ); このように、フレームラベル1つだけを指定することでも移動できます。 gotoAndPlay でパラメータを1つだけ渡すと、先述の通り、これはフレームラベルと見なされてしまいます。 シーン名とフレームの両方を指定すると上手くいくのにシーン名だけだと上手くいかないのは、Flash の中ではこれがフレームラベルと解釈されており、該当するフレームが見当たらないためだと思います。
お礼
調べてみましたら、やはりフレームラベルの設定でした。丁寧な回答ありがとうございました。