たびたびの質問で失礼します。
flashでクイズゲームを作成中です。
正解時と不正解時、それぞれに効果音("ok"、"ng")を設定しているのですが、音を出さないようにするためのボタンをつける方法がわかりません。
これまでに試したのは、ゲーム開始前の1フレーム目にボタンを設置して、以下のようにActionScriptを書いてみたのですが、まったく反応しません。
まったく見当違いのような気もするのですが解決方法が分かりません。
正しい方法をアドバイス、お願いいたします!
--------------------------------------------
※フレーム1に
snd_1=new Sound();
snd_1.attachSound("ok");
snd_2=new Sound();
snd_2.attachSound("ng");
※ボタンに
on (release) {
snd_1.stop( );
}
on (release) {
snd_2.stop( );
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1です。
> snd_1=new Sound();
> snd_1.attachSound("ok");
> snd_1.start(0,0)
>
> と書く。
> 逆に不正解を選ぶと「不正解」のフレームに飛び、そこには
>
> snd_2=new Sound();
> snd_2.attachSound("ng");
> snd_2.start(0,0)
そういうことですか。
それでは消えません。
インスタンスを消したとたんに,またインスタンスを作っているのですから。
1行1行何をしているのか
ちゃんと分けて考えてください。
------------------------------
snd_1=new Sound();
snd_1.attachSound("ok");
snd_2=new Sound();
snd_2.attachSound("ng");
------------------------------
ここまでが,あらかじめ作っておくべきインスタンスです。
これは何度も作る必要はありません。
フレーム1 などに書いておけば良いだけです。
-------------------------
snd_1.start(0,0)
-------------------------
と
-------------------------
snd_2.start(0,0)
-------------------------
この2つが,
作成したインスタンスをスタートさせるスクリプトです。
これだけを「正解」のフレームと「不正解」のフレームにそれぞれ書けば良いのですよ。
何度も同じサウンドインスタンスを作らなくても,良いのです。
ムービークリップも再生するたびに同じムービークリップを作成するわけではないでしょう。
同じムービークリップだと,ムービークリップの作成は1回(1つ)だけで,
何回もリプレイする場合は,それを何度も play(); させれば良いだけです。
音も同じです。
この状態で,つまり
フレーム1でサウンドインスタンスを用意して,正解不正解フレームに各それぞれのスクリプトを用意している状態で,
snd_1 を鳴らさないボタンには
---------------------
on (release) {
snd_1.stop();
delete (snd_1);
}
---------------------
snd_1 を鳴らさないボタンには
---------------------
on (release) {
snd_2.stop();
delete (snd_2);
}
---------------------
と書けば良いのです。
すると,フレーム1で用意されたサウンドインスタンスが削除されるので,
ボタンを押せば,以降音は鳴りません。
逆にまた鳴り始めさせたいときは,
サウンドインスタンスを作ってやれば鳴り出します。
No.1
- 回答日時:
今ひとつ何を質問されているのかよくわからないのですが,
音を消すのではなくて,
音を出さないようにするという方法ですね。
その方法なら,いろいろ方法はあると思います。
ボリュームを 0 にしてしまうとか,
変数フラグを立てて,そのフラグの値が0である時は start させて,それ以外の時は start させないとか
ご質問に書かれている状態で,
一番楽にできる方法は delete でサウンドインスタンスを消してしまう方法かなと思います。
on (release) {
delete (snd_1);
}
もし,音が継続的に鳴っている物でしたら
on (release) {
snd_1.stop();
delete (snd_1);
}
で音を止めてから,サウンドインスタンスを消去すると
そのときの音も消え,それ以降も音は鳴りません。
delete演算子ですが,
便利なようですが何でもかんでも消せるわけではありません。
この辺を参考にしてみてください。
Macromedia Flash非公式テクニカルノート
delete
http://www.fumiononaka.com/TechNotes/Flash/FN031 …
この回答への補足
ご回答ありがとうございます。
わかりにくい質問で申し訳ありません。
クイズの答によって「正解」または「不正解」のフレームに飛び、そのフレームに入るとそれぞれに応じた効果音が鳴るようにしてあるのですが、ゲーム開始の前にstopボタンをクリックすると、ゲーム中に効果音が出なくなるようにしたいのです。
現在の内容は下記の通りです。
*********************************************************
「クイズ」のフレームで正解を選ぶと「正解」のフレームに飛び、そのフレームには
snd_1=new Sound();
snd_1.attachSound("ok");
snd_1.start(0,0)
と書く。
逆に不正解を選ぶと「不正解」のフレームに飛び、そこには
snd_2=new Sound();
snd_2.attachSound("ng");
snd_2.start(0,0)
と書く。
続けて、教えて頂いたdelete演算子を使って以下の通りにしましたが、stopボタンをクリックしても音が鳴ってしまいます。
deleteの使い方が正しくないのでしょうか?
教えて頂いたサイトも参照させて頂きます。
************************************************************
フレーム1に配置したstopボタンに
on (release) {
delete (snd_1);
}
on (release) {
delete (snd_2);
}
と書く。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 検索窓とcssハックについて 3 2022/04/22 12:21
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- スピーカー・コンポ・ステレオ pcとSwitchでスピーカーを使うときについて三つ質問があります 4 2023/04/03 23:58
- オンラインゲーム APEXのVCについて教えてほしい 1 2023/07/18 19:41
- その他(SNS・コミュニケーションサービス) discordで通話する際に音声が途切れて聞こえます。 1 2023/02/08 20:25
- ノートパソコン ノートパソコンの電源が入らなくなった 7 2022/05/31 15:00
- タブレット Lenovoのタブレットの設定について 1 2023/01/03 01:04
- docomo(ドコモ) 通話録音が(最初から)自動的に始まるアプリは? 7 2023/01/16 15:53
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB.NET】別Formのボタンが押...
-
インスタンスとポインタ
-
DataTableの件数を取得したい
-
GetModuleFileName(他のアプリ,...
-
アドビ フラッシュ CS3 「だ...
-
BitmapをIDで指定したい
-
シンボル化解除の方法
-
Access2000 実行時エラー '3061':
-
photoshopで書いた四角の枠の中...
-
変数に256文字以上のテキストを...
-
VBAで改行の入ったデータの正規...
-
VBScriptでMsgBoxのYesNoボック...
-
ActionScriptでプルダウンメニュー
-
else if文の順序を変えることに...
-
python ボタンを押すと複数の関...
-
【ExcelVBA】ファイル名をセル...
-
多言語を混在できるか。
-
マスクをとるとオーバーフロー...
-
C言語でネットワーク範囲のIPア...
-
テキストボックスの中身をリセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB.NET】別Formのボタンが押...
-
プログラミング、アーキテクチ...
-
DataTableの件数を取得したい
-
CreateDialogについて
-
VB6.0で、フォームから、別のフ...
-
インスタンスとポインタ
-
アドビ フラッシュ CS3 「だ...
-
外部テキストから画像やリンク...
-
フォームの生成と破棄
-
【FLASH】インスタンス名の一覧...
-
パスの書き方 AS3
-
チェックボックスの制御(onCli...
-
【ActionScript】コンボボック...
-
背景画像が拡大縮小しつつ、大...
-
GetModuleFileName(他のアプリ,...
-
フェードイン-(待機)-フェー...
-
AS3.0のクラス定義に関して質問...
-
ウインドウハンドルとインスタ...
-
Flashの画面をJPEG画像にしてメ...
-
flashAS3.0でのランダムモーシ...
おすすめ情報