SEManagerクラス
@version 0.99
@author dada
@url http://sygnas.jp/
- 複数のSE(効果音)を登録して簡単に再生させるためのクラスです。
- BGMと違い、SEは複数同時に呼び出すことがあるので、SE毎にSoundオブジェクトを作成しています。
- 全SEに対して Soundオブジェクトを作るので、大量登録には注意してください。
- SEは短めの音を即座に鳴らさないといけないので、ライブラリからの呼び出しのみ対応です。
- volumeプロパティによる音量変更は、全Soundオブジェクトに対して処理するので注意。
- 個別に音量調整する場合は setVolumeMax( name:String, vol:Number ) を用います。
- Flash7環境でも使えるかもしれません。
コード
サンプル
使用方法
インスタンスを作り、それに対して音声ファイルを登録していきます。
登録時に最大音量を設定することで、音量のバラつきに対処することが出来ます。
import tv.sygnas.sound.SEManager;
// 音声再生ターゲットと、初期音量を設定します。
// ターゲットは Soundクラスの targetにあたります。
var mySE:SEManager = new SEManager(this,100);
// 音声ファイル登録。
// 最大音量を「50」にしているので、volumeプロパティで「100」を設定しても「50」で再生される。
// voumeプロパティに「50」を設定した場合「25」で再生される。
mySE.addSE( "se1","se1.wav",",50 );
// 音声を再生。
mySE.play( "se1" );
エラーについて
再生失敗すると onError( obj:BGMManager, message:String ) を呼びます。
エラーメッセージ
| NO_ADDED | 指定された識別子は登録されていない
|
プロパティ
- _seList:Object
-
SEのリスト。登録時の名前をキーに、最大音量と、Soundオブジェクトが登録されている。
| _seList[key].vol:Number | 最大音量
|
| _seList[key].sound:Sound | Soundオブジェクト
|
- volume:Number
-
全体の音量。
0~100の範囲で与える。
曲登録時の最大音量を「100」として考える。
「50」で登録した曲を、「50」で再生していたら「100」を返す。
- total:Number(読み取り専用)
-
総曲数
- enabled:Boolean
-
有効・無効
イベント
- onError = function( bgmManager:BGMManager, msg:String )
-
エラー発生。メッセージは前述の「エラーについて」参照。
- onEnabled = function( bgmManager:BGMManager, bool:Boolean )
-
再生の有効、無効が変わった時に呼ばれます。「bool」は有効状態なら「true」、無効なら「false」が入ります。
コンストラクタ
SEManager( target:MovieClip, vol:Number ):Void
| target | soundオブジェクトを割り当てる場所
|
| vol | スタート時のボリューム。指定がなければ「50」
|
メソッド
- addSE( name:String, link:String, vol:Number, func:Function ):Void
-
音声を追加します。
| name | 識別子
|
| link | 音声ファイルのリンケージ名
|
| vol | 基準ボリューム。指定がなければ「100」になる
|
| func | 音声再生後のコールバック関数
|
- play( name:String ):Void
-
指定された音声を再生します。
- stop( name:String ):Void
-
再生中の音声を停止します。
- setVolumeMax( name:String, vol:Number ):Void
-
音声単体の最大音量を変更します。再生中の音量は変わりません。
- getVolumeMax( name:String ):Number
-
音声単体の最大音量を取得します。
- setSoundComplete( name:String, func:Function ):Void
-
SE再生完了時に実行するコールバック関数を個別に指定します。
- dispose():Void
-
SEManagerを破棄します。