dポイントプレゼントキャンペーン実施中!

はじめまして。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
----------------------------------------
どうかどのようにしたらいいのか教えてください。お願いします。

A 回答 (1件)

その作例を紹介した者です。




このスクリプトはフレームではなく、”ムービークリップのインスタンスに”書きます。
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 に設定してください。
    • good
    • 0
この回答へのお礼

DPEさん
レスが遅くなって、すみません。
回答いただき、ありがとうございます。
ちょっと立て込んでしまったので、落ち着いたらこちらの方法でやってみようと思います。
勉強不足ですみません。
また判らなくなったらお聞きしてもよろしいでしょうか。
よろしくお願いいたします。

お礼日時:2007/10/23 17:45

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