- 締切済み
flashのBGMのoff/onボタン
はじめまして。Flashがまだよくわかっていない初心者です。マニュアル本、こちらのhttp://oshiete1.goo.ne.jp/qa1789705.htmlを参考にやってみましたが、わかりません。お願いです。教えてください。 最初に開いたらBGMがデフォルトで鳴っていて、「サウンドOFF」ボタンを押すとBGMは停止し、アニメーションは最後までという内容です。 現在の状況および作成手順ですが、 「シーン1」には2つレイヤーがあり、1つ目のレイヤーは「but」とし、これにはサウンドOFF/ONのムービークリップを配置してあります。フレームは1つだけで、ここに下記を記述(action)しました。 ---------------------------------------- onClipEvent(load) { //サウンドを挿入 snd = new Sound(); snd.attachSound( "BGM" ); //無限ループ再生設定 snd.onSoundComplete = function() { this.start(); }; //サウンドの再生状況を保持する変数 //再生時true、それ以外はfalse play_flg = false; //再生状況に応じたフレームを表示 gotoAndStop( Number( play_flg ) + 1 ); } on(release) { //サウンド再生時は止める if( play_flg ) { snd.stop(); play_flg = false; } //停止中の場合は再生する else { snd.start(); play_flg = true; } //再生状況に応じたフレームを表示 gotoAndStop( Number( play_flg ) + 1 ); } ---------------------------------------- 2つ目のレイヤーには「写真」という名前で写真5枚がフェードインアウトしながら切り替わる、というムービークリップを制作しました。 これをプレビューすると、ムービーは実行されますがBGMは鳴りません。また「サウンドOFF」「サウンドON」のボタンが繰り返してしまいます。 デバック出力で下記エラーと表示されます。 ---------------------------------------- **エラー** シーン = シーン 1, レイヤー = but, フレーム = 1 :行 1:クリップイベントはムービークリップインスタンスでのみ使用可能です。 onClipEvent(load) **エラー** シーン = シーン 1, レイヤー = but, フレーム = 1 :行 21:マウスイベントはボタンインスタンスでのみ使用できます。 on(release) ActionScript エラー数 :2 報告済みエラー :2 ---------------------------------------- どうかどのようにしたらいいのか教えてください。お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- DPE
- ベストアンサー率85% (666/776)
その作例を紹介した者です。 このスクリプトはフレームではなく、”ムービークリップのインスタンスに”書きます。 but レイヤーに配置した、ON / OFF ボタンとして使うムービークリップを選択した状態で、「アクション」パネルを見てください。 パネルの上部に「▼アクション-ムービークリップ」と表示されていることを確認し、スクリプトを記述してください。 この作例は、ムービークリップをクリックするまで BGM が鳴らないようになっています。 最初から鳴らすには、onClipEvent(load) {・・・} の部分を以下のように変更してください。 (↓各行頭に全角のスペースが入っています。コピーする際は、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります) onClipEvent(load) { //サウンドを挿入 snd = new Sound(); snd.attachSound( "BGM" ); //無限ループ再生設定 snd.onSoundComplete = function() { this.start(); }; //サウンドを再生 snd.start(); //再生状況を保持する変数 //再生時true、それ以外はfalse play_flg = true; //再生状況に応じたフレームを表示 gotoAndStop( Number( play_flg ) + 1 ); } スクリプトでサウンドを扱う時は、リンケージという設定が必要です。 リンケージの設定、特に識別子が間違っていると音が鳴らなくなってしまいます。 識別子は、attachSound で指定する名前と同じ名前を付けます。 全角・半角、大文字・小文字も区別されますので、この手の誤りにもご注意ください。 それから、Flash CS3 をお使いの場合は、ActionScript のバージョンが 3.0 に設定されていると onClipEvent と on アクションが使えません。 「パブリッシュ設定」で、ActionScript のバージョンを 1.0 か 2.0 に設定してください。
お礼
DPEさん レスが遅くなって、すみません。 回答いただき、ありがとうございます。 ちょっと立て込んでしまったので、落ち着いたらこちらの方法でやってみようと思います。 勉強不足ですみません。 また判らなくなったらお聞きしてもよろしいでしょうか。 よろしくお願いいたします。