Regular.easeOut the sound, please!
Well it works.
So without further due I give you the sound volume tween class:
import mx.events.*;
import mx.transitions.Tween;
import mx.transitions.easing.*;
class utils.sound.ExtendedSound extends Sound
{
public function addEventListener() {};
public function removeEventListener() {};
private function dispatchEvent() {};
private function dispatchQueue() {};
private var __sndVolume: Number;
private var sndTween: Tween;
public function get sndVolume(): Number
{
__sndVolume = getVolume();
return __sndVolume;
}
public function set sndVolume(inVol: Number): Void
{
__sndVolume = inVol;
setVolume(__sndVolume);
}
/*
* @usage: var snd = new ExtendedSound(someMovieClip); snd.fadeTo(25, 3);
*/
public function ExtendedSound(_args)
{
super(_args);
trace(toString()+'.NEW > ');
EventDispatcher.initialize(this);
}
public function toString(): String
{
return 'utils.sound.ExtendedSound';
}
public function onFadeFinished():Void
{
trace(toString()+'.onFadeFinished > ');
dispatchEvent({target: this, type:"onFadeFinished"});
}
public function fadeTo(inTargetVol: Number, inDuration: Number)
{
if(inTargetVol == sndVolume){
onFadeFinished();
return;
}
inTargetVol = (inTargetVol < intargetvol =" (inTargetVol"> 100) ? (100) : (inTargetVol);
sndTween = new Tween(this, "sndVolume", Regular.easeOut, sndVolume, inTargetVol, inDuration, true);
var _this = this;
sndTween.onMotionFinished = function(){
_this.onFadeFinished();
}
}
}
0 Comments:
Post a Comment
<< Home