サウンドオブジェクトは音のオブジェクトです。
Flashでは埋め込みサウンド、ストリーミングサウンド、リンケージサウンドの3種類の方法で音が再生できます。
サウンドオブジェクトは以下の時に生成されます。
サウンドをActionScriptで使用する際には
new Sound(ムービークリップインスタンス)
でサウンドオブジェクトを生成します。指定したムービークリップインスタンスに埋め込みサウンドが入っている場合には、そのサウンドが割り当てられます。
ムービークリップインスタンスを省略した場合には、thisが指定されたことになります。
s1_sound=new Sound();
duration | サウンドの再生時間(ミリ秒) |
---|---|
position | サウンドの再生箇所(ミリ秒) |
s1_sound.duration// s1_soundオブジェクトの再生時間
s1_sound.position// s1_soundオブジェクトの再生箇所
s1_sound.position/s1_sound.duration// s1_soundオブジェクトの再生割合
attachSound() | リンケージサウンドの割り当て |
---|---|
start() | サウンドの再生 |
stop() | サウンドの停止 |
loadSound() | 外部mp3ファイルの読み込み |
getByteLoaded() | ロードしたバイト数 |
getByteTotal() | トータルのバイト数 |
setVolume() | 音量の設定 |
getVolume() | 音量の取得 |
setPan() | 左右の音量の設定 |
getPan() | 左右の音量の取得 |
setTransform() | 詳細な左右の音量の設定 |
getTransform() | 詳細な左右の音量の取得 |
リンケージ設定したサウンドをサウンドオブジェクトに割り当てます。
サウンドオブジェクト名.attachSound(リンケージ名)
s1_sound=new Sound();// サウンドの使用準備
s1_sound.attachSound("music");// リンケージサウンドmusicを割り当て
サウンドの再生を行います。
サウンドオブジェクト名.start(再生開始箇所[秒], 繰り返し回数)
再生開始箇所が省略された場合には0[秒]が、繰り返し回数が省略された場合には1が指定されたことになります。
(注)埋め込みサウンドに対して使っても効果がありません。
s1_sound.start();// サウンドを最初から一度再生
s1_sound.start(5,2);// サウンドを5秒目から2度再生
サウンドの停止を行います。
サウンドオブジェク名.stop(リンケージ名)
リンケージ名を省略した場合には、ムービー内の全てのサウンドが停止します。
s1_sound.stop("music"); // リンケージサウンドmusicを停止
指定したmp3ファイルを読み込みます。
サウンドオブジェクト名.loadSound(ファイル名, ストリーミングフラグ)
ファイル名は相対パスによる指定だけでなく、URLアドレスから指定することもできます。ストリーミングフラグはtrueを指定するとストリーミングで再生を行います。
// リンケージサウンドmusic.mp3ファイルの読み込み
s1_sound.loadSound("music.mp3", false);// ストリーミングでmp3ファイルの読み込み(フリー音素材ASOBEATさんのMP3を使ってます。)
s1_sound.loadSound("http://yonao.com/asobeat/mp3/bgms/bgm0003aL.mp3", true);
onLoad() | サウンドのロードが終了すると発生 |
---|---|
onSoundComplete() | サウンドの再生が終了すると発生 |
サウンドの再生が終了すると発生するイベントで起動されるonSoundComplete()メソッドを使ってサウンドの再生終了時の動作を記述します。下記は関数リテラルを使ったメソッド定義です。
サウンドオブジェクト名.onSoundComplete = function () { ブロック }
【メインタイムラインのフレームアクション】
s1_sound = new Sound(); s1_sound.attachSound("music");
【再生ボタンオブジェクト(play_btn)のボタンアクション】
on(press) {
s1_sound.start();
play_btn.enabled=false; // 再生ボタンを押せないようにする
}
【停止ボタンオブジェクト(stop_btn)のボタンアクション】
on(press) {
s1_sound.stop();
play_btn.enabled=true; // 再生ボタンを押せるようにする
}
【メインタイムラインのフレームアクションに追加】
s1_sound.onSoundComplete = function () {
play_btn.enabled=true // 再生ボタンを押せるようにする
}
リンケージサウンドを使って以下の機能を実現せよ。
Programming Laboratory (Shio seminar)