- 締切済み
ループを抜けて指定したフレームへ行きたい
大学の課題で簡単なFLASHゲームを作っているのですが アクションスクリプトの書き方で質問させてください。 最初の画面のスタートボタンを押したら、フレーム50からあるOPムービー的なものへ行き再生したいのですが うまくいきません。 最初のページには森の絵があり、枝が揺れているので 枝を揺らすために 別にアクションスクリプトを記述するだけのレイヤーをつくり this.gotoAndPlay(19) と書いてします。 この事で、全てのレイヤーが19~40をループしているようです。 スタートボタン(ボタンで作りました)を押す事で、 このループを抜けて、50フレームに行くのはどうしたらいいでしょうか 昨夜から本やサイトを見ているのですがどうにも失敗します on(press)関係をボタンをつけたレイヤーに書くとthis.gotoAndPlay(19)がきかず全て再生されてしまいます。 いまいちFLASHが理解できておらず、質問内容もガタガタですが 何とぞ宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
#1(ANo.1)です。 犬をつかまえて「投げたフリスビーを取れ」と命令するのです。 (ボタンを選択して「フレーム50に進めろ」とめいれいするのです。) > ボタンを編集するところでは(アップ、オーバー、ダウン等のあるところです) それは,犬で言えば内臓です。 犬の肝臓に 「投げたフリスビーを取れ」 と命令はできないでしょう? > 「マウスイベントはボタンインスタンスでのみ使用できます」 「マウスイベントは」 とは #1 で書いた onハンドラ のことです。 onハンドラ は元来ボタンにしか書けなのでそういうメッセージが出るようになっています。 Flash MX 以降(Flash Player 6 以降)になって, ムービークリップ自体にも書けるようになりましたが, 元来 onハンドラ は ボタンにしか書けなかったので, フレームを選択して onハンドラ を書こうとすると, 「マウスイベントはボタンインスタンスでのみ使用できます」 → onハンドラ は ボタン自体 のみに書けます というメッセージが出ます。 実際は 「マウスイベントはボタンインスタンスもしくはムービークリップインスタンスでのみ使用できます」 に変更すべきでしょうが,そう変更されていないようです。 そんなことはどうであれ, 「ステージ上のボタン」をひっ捕まえてActionScriptを書くのです。 レイヤー(フレーム)ではありません。 ステージ上に見えているボタンです。 あと,ひょっとして, ファイル→パブリッシュ設定でFlashタブを選択すると, ActionScript のバージョンが ActionScript 3.0 に設定されていませんか? onハンドラ は ActionScript 2.0 以下 に存在するスクリプトで ActionScript 3.0 にはありませんよ。 もし パブリッシュ設定 で ActionScript のバージョンが ActionScript 3.0 に設定されていたならば, ActionScript 2.0 や 1.0 にすべきです。 (というか, もし ActionScript 3.0 に設定されていたならば, > on(press)関係をボタンをつけたレイヤーに書くと などという表現はしないはずです。 ご質問に > on(press)関係をボタンをつけたレイヤーに書くと と書かれていらっしゃるので, こちらは自動的に ActionScript 2.0 以下だと判断して回答しています。)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
> on(press)関係をボタンをつけたレイヤーに書くと ここの部分が一番わかりませんね。 on(press) や on(release) や on(rollOver) など onハンドラは レイヤー(フレームのこと?)には書けませんよ。 onハンドラ は ボタン(またはムービークリップ)を選択して, その状態で表示されるアクションパネルに書くスクリプトです。 つまり onハンドラ は ボタン自体(またはムービークリップ自体)に書くスクリプトです。 ですから, ボタンを選択して, そのボタン自体に ------------------------- // このボタンをプレスしたとき on(press){ // このボタンがある階層をフレーム50に進めて停止 gotoAndStop(50); } ------------------------- などと書けば良いだけかと思いますが。 ※ 通常の クリック を示すスクリプトは, on(press) [←押したとき]ではなく on(release) [←押して放したとき] ですが...。
お礼
回答ありがとうございます、そして申し訳ないのですが成功しません ボタン自体(またはムービークリップ自体)に書くとのことですが ボタンを編集するところでは(アップ、オーバー、ダウン等のあるところです) 「現在の選択範囲にアクションを割り当てる事はできません」 といわれ シーンでボタンを選択して書くと エラーのところに 「マウスイベントはボタンインスタンスでのみ使用できます」と言われてしまいます 初歩的なことかもしれませんが、記述するところについて詳しく教えて頂けると幸いです 申し訳ございません