BGMManagerクラス
@version 0.99
@author dada
@url http://sygnas.jp/
- 複数のBGMを登録して簡単に再生させるためのクラスです。
- ライブラリからの呼び出しおよび、外部MP3に対応しています。
- 外部MP3呼び出しの場合ストリーミングは行いません。
- Flash7環境でも使えるかもしれません。
コード
サンプル
更新履歴
- 2007/11/01
- ストリーミングパラメータ「_streaming:Boolean」を追加。
- ストリーミング再生時は fadein()、crossfade()をしてもフェードまでに再生が始まらない可能性があります。
- ストリーミング再生時は、ループ指定がききません。onSoundComplete を受け取って play() を実行してください。
- ストリーミング再生時は、即座にイベントonSoundPlay が呼び出されます。
- 2007/10/30
- フェードイン時にもイベント「onSoundPlay」を発生するようにした。
- STOP時に pause() を実行すると、play() を実行するように変更。
使用方法
インスタンスを作り、それに対して音声ファイルを登録していきます。
登録時に最大音量を設定することで、音量のバラつきに対処することが出来ます。
import jp.sygnas.sound.BGMManager;
// 音声再生ターゲットと、初期音量を設定します。
// ターゲットは Soundクラスの targetにあたります。
var myBGM:BGMManager = new BGMManager(this,100);
// 音声ファイル登録。
// 最大音量を「50」にしているので、volumeプロパティで「100」を設定しても「50」で再生される。
// voumeプロパティに「50」を設定した場合「25」で再生される。
myBGM.addBGM( "bgm1","bgm1.mp3","LOAD",50 );
// フェードインを「2秒」かけて行う。
myBGM.fadein( "bgm1", 2 );
エラーについて
再生失敗すると onError( obj:BGMManager, message:String ) を呼びます。
エラーメッセージ
| LOAD_ERROR | 外部MP3の読み込み失敗
|
| NO_ADDED | 指定された識別子は登録されていない
|
プロパティ
- _sound1:Sound
-
Soundオブジェクト。
- _sound2:Sound
-
Soundオブジェクト。クロスフェード時に使用する。
- _loop:Number
-
再生ループ回数
- _streaming:Boolean
-
ストリーミング再生をする。初期値=false
- volume:Number
-
全体の音量。
0~100の範囲で与える。
曲登録時の最大音量を「100」として考える。
「50」で登録した曲を、「50」で再生していたら「100」を返す。
- mode:String(読み取り専用)
-
現在の状態を表す。
| PLAY | 再生中
|
| STOP | 停止
|
| PAUSE | 一時停止
|
| FADE_IN | フェードイン
|
| FADE_OUT | フェードアウト
|
| CROSS_FADE | クロスフェード
|
- title:String(読み取り専用)
-
再生中の曲
- total:Number(読み取り専用)
-
総曲数
- enabled:Boolean
-
有効・無効
イベント
- onSoundPlay = function( bgmManager:BGMManager )
-
play()メソッドにより再生開始した時に呼ばれます。
- onSoundComplete = function( bgmManager:BGMManager )
-
再生完了した時に呼ばれます。
- onSoundStop = function( bgmManager:BGMManager )
-
stop()メソッドにより停止した場合に呼ばれます。
- onSoundPause = function( bgmManager:BGMManager, bool:Boolean )
-
一時停止した時に呼ばれます。「bool」は一時停止状態なら「true」、再生再開なら「false」が入ります。
- onFadeInComp = function( bgmManager:BGMManager )
-
フェードイン完了した時に呼ばれます。
- onFadeOutComp = function( bgmManager:BGMManager )
-
フェードアウト完了した時に呼ばれます。
- onCrossFadeComp = function( bgmManager:BGMManager )
-
クロスフェード完了した時に呼ばれます。
- onVolume = function( bgmManager:BGMManager )
-
ボリュームが変わったした時に呼ばれます。
- onTitle = function( bgmManager:BGMManager )
-
再生する曲が変わった時に呼ばれます。
- onError = function( bgmManager:BGMManager, msg:String )
-
エラー発生。メッセージは前述の「エラーについて」参照。
- onEnabled = function( bgmManager:BGMManager, bool:Boolean )
-
再生の有効、無効が変わった時に呼ばれます。「bool」は有効状態なら「true」、無効なら「false」が入ります。
コンストラクタ
BGMManager( target:MovieClip, vol:Number ):Void
| target | soundオブジェクトを割り当てる場所
|
| vol | スタート時のボリューム。指定がなければ「50」
|
メソッド
- addBGM( name:String, file:String, type:String, vol:Number ):Void
-
曲を追加します。
| name | 識別子
|
| file | 外部MP3ならURL、ライブラリならリンケージ名
|
| type | 外部MP3なら「LOAD」、ライブラリなら「LIB」
|
| vol | 基準ボリューム。指定がなければ「100」になる
|
- play( name:String ):Void
-
指定された曲を再生します。
- stop():Void
-
再生中の曲を停止します。
- pause():Void
-
再生中の曲を一時停止します。
- fadein( name:String, sec:Number ):Void
-
曲を任意秒かけてフェードインします。
| name | 曲識別子
|
| sec | フェードインにかける時間(秒)
|
- fadeout( sec:Number ):Void
-
再生中の曲を任意秒かけてフェードアウトします。
- crossfade( name:String, sec:Number ):Void
-
再生中の曲をフェードアウトしつつ、同時に新しい曲をフェードインします。
| name | 曲識別子
|
| sec | クロスフェードにかける時間(秒)
|
- setVolumeMax( name:String, vol:Number ):Void
-
曲単体の最大音量を変更します。再生中の音量は変わりません。
- getVolumeMax( name:String ):Number
-
曲単体の最大音量を取得します。
- dispose():Void
-
BGMManagerを破棄します。