• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一定の数字以上で音を鳴らしたい)

一定の数字以上で音を鳴らす方法

このQ&Aのポイント
  • Flash CS5のAction Script3.0を使用して、特定の数字以上で音を鳴らすための方法を知りたいです。
  • ボタンをクリックするとテキストフィールドの数字が加算され、一定の数字に達した場合に音を鳴らしたいです。
  • 具体的には、数字が500以上になった場合に音を鳴らす方法や、1000や1500などの増えていく数字でも音を鳴らす方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> 数字が1000、1500・・・のように > 増えていった場合も音を鳴らしたい ここの捉え方(解釈の方法)が何通りもあって回答が難しいですね。 まず 「カウントアップされる数字は,キッチリと 500 にも 1000 にも 1500 にもなる。」 という条件だとします。 例えばカウントを 書かれていらっしゃるように 0 から 100 ずつ加算した場合は カウントが 500 にも 1000 にも 1500 にもなりますが 0 から 33 ずつ加算した場合や 1 から 100 ずつ加算した場合などなど…では カウントは 500 にも 1000 にも 1500 にもなりません。 このようなことはないものとします。 あと, カウントが 500 と 1000 と 1500 になったときの音(音楽?)は 違う音(違う曲)であるものとします。 さらに, カウントが 500 の音(曲)が仮に鳴っている途中であって カウントが 1000 や 1500 になったときには 前の音は鳴りっぱなしになる(重なって聞こえる)ものとします。 以上のような条件であるものと勝手に決めて回答します。   ============================================= 音は例えば(あくまでも例えば), 「music0.mp3」「music1.mp3」「music2.mp3」 という3つのファイルであって それらのファイルを 「ファイル」→「読み込み」→「ライブラリに読み込み」で ライブラリに読み込んであるものとします。 その場合 例えばライブラリの「music0.mp3」を選択して 「プロパティ」より「サウンドプロパティ」パネルを出して 「リンケージ」の欄より次の2つの欄にチェックを入れます。  □ ActionScript用に書き出し  □ 1フレーム目に書き出し そうすると 「クラス」の欄が記入可能状態になりますから そこで例えば「Music0」というクラス名を付けます。 基本クラスの欄はデフォルトの flash.media.Sound のままにしておきます。 読み込んだその他の 「music1.mp3」や「music2.mp3」のシンボルに関しても 同様に「Music1」や「Music2」というクラス名を付けます。 そのように準備しておいた上で メインタイムラインのステージ上には 「my_txt」というインスタンス名を付けたダイナミックテキストフィールドと 「my_btn」というインスタンス名を付けたボタンとがある場合の メインタイムラインのフレームに書くスクリプト例です↓。 //------------------------------ //各Soundインスタンスを作成 var sound_500:Sound = new Music0(); var sound_1000:Sound = new Music1(); var sound_1500:Sound = new Music2(); //テキストフィールド「my_txt」に 0 を表示 my_txt.text = String(0); //カウントアップする数の初期化 var my_num:int = 0; //ボタン「my_btn」クリック時に関数「numUp」を実行 my_btn.addEventListener(MouseEvent.CLICK,numUp); //関数「numUp」の定義 function numUp(e:MouseEvent):void { //カウントアップ my_num += 100; //テキストフィールド「my_txt」にカウント数を表示 my_txt.text=String(my_num); // //各カウント数になればカウントに対応する音の再生開始 if (my_num==500) { sound_500.play(); } else if (my_num == 1000) { sound_1000.play(); } else if (my_num == 1500) { sound_1500.play(); } } //------------------------------  

natsumikiri
質問者

お礼

とてもわかりやすく教えてくださってありがとうございました。

関連するQ&A