プロが教える店舗&オフィスのセキュリティ対策術

大学の課題で簡単なFLASHゲームを作っているのですが
アクションスクリプトの書き方で質問させてください。

最初の画面のスタートボタンを押したら、フレーム50からあるOPムービー的なものへ行き再生したいのですが
うまくいきません。

最初のページには森の絵があり、枝が揺れているので
枝を揺らすために
別にアクションスクリプトを記述するだけのレイヤーをつくり
this.gotoAndPlay(19)
と書いてします。
この事で、全てのレイヤーが19~40をループしているようです。

スタートボタン(ボタンで作りました)を押す事で、
このループを抜けて、50フレームに行くのはどうしたらいいでしょうか
昨夜から本やサイトを見ているのですがどうにも失敗します
on(press)関係をボタンをつけたレイヤーに書くとthis.gotoAndPlay(19)がきかず全て再生されてしまいます。

いまいちFLASHが理解できておらず、質問内容もガタガタですが
何とぞ宜しくお願いいたします。

「ループを抜けて指定したフレームへ行きたい」の質問画像

A 回答 (2件)

#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 以下だと判断して回答しています。)
    • good
    • 0

> on(press)関係をボタンをつけたレイヤーに書くと



ここの部分が一番わかりませんね。

on(press) や on(release) や on(rollOver) など onハンドラは
レイヤー(フレームのこと?)には書けませんよ。

onハンドラ は ボタン(またはムービークリップ)を選択して,
その状態で表示されるアクションパネルに書くスクリプトです。
つまり
onハンドラ は ボタン自体(またはムービークリップ自体)に書くスクリプトです。

ですから,
ボタンを選択して,
そのボタン自体に

-------------------------
// このボタンをプレスしたとき
on(press){
// このボタンがある階層をフレーム50に進めて停止
gotoAndStop(50);
}
-------------------------

などと書けば良いだけかと思いますが。


※ 通常の クリック を示すスクリプトは,
  on(press) [←押したとき]ではなく
  on(release) [←押して放したとき] ですが...。
    • good
    • 0
この回答へのお礼

回答ありがとうございます、そして申し訳ないのですが成功しません

ボタン自体(またはムービークリップ自体)に書くとのことですが
ボタンを編集するところでは(アップ、オーバー、ダウン等のあるところです)
「現在の選択範囲にアクションを割り当てる事はできません」
といわれ
シーンでボタンを選択して書くと
エラーのところに
「マウスイベントはボタンインスタンスでのみ使用できます」と言われてしまいます
初歩的なことかもしれませんが、記述するところについて詳しく教えて頂けると幸いです
申し訳ございません

お礼日時:2010/01/23 20:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!