FlxSound の変更点


[[API Reference]] > [[flixel.system]] > FlxSound

*FlxSound [#kb6607d4]
サウンド再生を行うクラスです。ストリーム再生やサウンドエフェクトをかけることできます

----
#contents
----

*フィールド [#za5d55c2]
**x:Float: 再生座標(X) [#t6ed7659]
**y:Float: 再生座標(Y) [#y5166166]
**persist:Bool : FlxStateを切り替えたときに破棄するかどうか。デフォルトはtrue [#yee09d81]
**name:String: ID3のソング名。ストリーミングサウンドのみ有効 [#yef5412c]
**artist:String : ID3のアーティスト名。ストリーミングサウンドのみ有効 [#h1dbce0a]
**amplitude:Float : ステレオチャンネルの平均振り幅 [#gdfb1525]
**amplitudeLeft:Float : 左ステレオチャンネルの振り幅 [#wc4b0321]
**amplitudeRight:Float : 右ステレオチャンネルの振り幅 [#xd08fe88]
**autoDestroy:Bool : 再生終了時に自動で破棄するかどうか。デフォルトはfalse [#pc00622c]
**onComplete:Void->Void : 再生完了時のコールバック関数 [#ua184187]
**pan:Float : パン。-1で左、1で右。0は中央 [#qd8b8ec8]
**playing:Bool : 再生中かどうか [#y7e1838e]
 読み取り専用
**volume:Float : 音量 [#bd4d7bd1]
**pitch:Float : 音の高さ [#d0968f60]
 初期値は 1
**time:Float : 再生位置 [#i233664d]
 読み取り専用。単位はミリ秒
**group:FlxSoundGroup : 所属するサウンドグループ [#rc702f8e]
**looped:Bool : ループするかどうか [#x2f499fa]
**loopTime:Float : 区間ループの開始時間 [#e532fc56]
 単位はミリ秒
**fadeTween:FlxTween : サウンド音量のTween [#g068188f]
 fadeIn() / fadeOut() で使用します
**length : サウンドの長さ [#uca874f7]
 単位はミリ秒

----
*メソッド [#mcb9c29c]
**play() : 再生を開始します [#g7e05963]
-引数
-- ForceRestart:Bool = false : 最初から再生するかどうか
-戻り値:FlxSound : thisポインタ

**proximity() : 距離での音の減衰を有効にします [#tacbf847]
-引数
-- X:Float : 音のX座標
-- Y:Float : 音のY座標
-- TargetObject:FlxObject : 追跡するオブジェクト
-- Radius:Float : 音の再生が有効な半径
-- Pan:Bool=true : パンを有効にするかどうか(デフォルトはtrue)
-戻り値:FlxSound : thisポインタ

**resume() : 再生を再開します [#j6bca398]
 pause()メソッドで停止したサウンドを再開します
-戻り値:FlxSound : thisポインタ

**pause() : 再生を一時停止します [#z6c6f93d]
 一時停止したサウンドはresume()メソッドで再会できます
-戻り値:FlxSound : thisポインタ

**stop() : 再生を停止します [#w9a2bad7]
-戻り値:FlxSound : thisポインタ

**fadeOut() : フェードアウト再生をします [#dc466180]
-引数
--Duration:Float = 1 : フェードアウト時間(秒)
-- ?To = 0 : フェードアウト完了後の音量
-- ?onComplete:FlxTween->Void : フェードアウト完了後のコールバック
-戻り値:FlxSound : thisポインタ
**fadeIn() : フェードイン再生します [#x0115cfa]
-引数
--Duration:Float = 1 : フェードイン時間(秒)
-- From:Float = 0 : フェードイン開始時の音量
-- To:FLoat = 1 : フェードイン完了後の音量
-- ?onComplete:FlxTween->Void : フェードアウト完了後のコールバック
-戻り値:FlxSound : thisポインタ
**onComplete() : 再生完了時のコールバック関数 [#i96e406e]
-戻り値:Void

----
* Tips [#e768c554]
** BGMを区間ループする [#i85c001b]
FlxSound.loopTimeを使うと、区間ループができます。区間ループとは、BGMにイントロ区間とループ区間がある場合に、ループ区間内だけを繰り返すことです。
区間ループとは、BGMにイントロ区間とループ区間がある場合に、ループ区間内だけを繰り返すことです。

#ref(001.png);

このように、イントロがあって、その後にループする部分があるBGMです。

区間ループするには、ループ開始がどこから始まるのかという情報が必要です。その情報はサウンド加工ツールなどで調べることができます。例えば、フリーソフトの「Audacity」を使う場合は、イントロの終端部分をクリックすると、画面下の「選択開始」というところに表示されます。

#ref(002.png);

この例の場合は、13.710秒がイントロの終端(ループ開始)となります。
この情報がわかれば、後はFlxSound.loopTimeを使うと、区間ループができます。
#geshi(ActionScript3){{
  // BGM "001.ogg" を再生
  var sound:FlxSound = FlxG.sound.music.play("assets/music/001.ogg");
  // ループ区間を設定 (13.710秒をループ開始とする)
  sound.loopTime = 13710;
}}