サウンドオブジェクトは音のオブジェクトです。
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)