package net.flashpunk.tweens.sound { import net.flashpunk.FP; import net.flashpunk.Tween; /** * Global volume fader. */ public class Fader extends Tween { /** * Constructor. * @param complete Optional completion callback. * @param type Tween type. */ public function Fader(complete:Function = null, type:uint = 0) { super(0, type, complete); } /** * Fades FP.volume to the target volume. * @param volume The volume to fade to. * @param duration Duration of the fade. * @param ease Optional easer function. */ public function fadeTo(volume:Number, duration:Number, ease:Function = null):void { if (volume < 0) volume = 0; _start = FP.volume; _range = volume - _start; _target = duration; _ease = ease; start(); } /** @private Updates the Tween. */ override public function update():void { super.update(); FP.volume = _start + _range * _t; } // Fader information. /** @private */ private var _start:Number; /** @private */ private var _range:Number; } }