Sí obvio que cambié los nombres adaptándolos a los míos. Tengo un as file con todo el código del audio y es allí donde he colocado el código del fade out. El botón que dispararía el fade no está dentro de ese código en cuanto a que no está en la película principal. A ese botón para por ejemplo mutear el audio hay que anteponerle al nombre del sonido _root.
En el caso del botón, éste debe ir al frame 226 para reproducir la animación de salida de la película en la que estamos y dar la entrada a la película en la cual hay que cambiar el audio. Por este motivo el fade out debe dispararse desde aquí. Otra opción es que el fade out se produzca mientras se carga la película. En ese caso el código no estaría atado al botón sino al frame donde se carga la misma.
Código :
trigger.onRelease = function():Void {
intervalId = setInterval(fadeVolumeOut, 100);
gotoAndPlay(226);
}
Código :
var s:Sound = new Sound();
s.onSoundComplete = playSong;
s.setVolume(100);
var sa:Array = new Array();
var cps:Number = -1;
var pos:Number;
var intervalId:Number = 0;
function fadeVolumeOut():Void {
var currVolume:Number = s.getVolume() - 5;
s.setVolume(currVolume);
if(currVolume <= 0){
clearInterval(intervalId);
}
}
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function()
{
var nodes:Array = this.firstChild.childNodes;
for(var i=0;i<nodes.length;i++)
{
sa.push(new Song(nodes[i].attributes.url, nodes[i].attributes.track, nodes[i].attributes.album));
}
playSong();
}
xml.load(\\\\\\\"songs.xml\\\\\\\");
function playSong():Void
{
s = new Sound();
s.onSoundComplete = playSong;
s.setVolume(100);
mute.gotoAndStop(\\\\\\\"on\\\\\\\");
if(cps == sa.length - 1)
{
cps = 0;
s.loadSound(sa[cps].earl, true);
}
else
{
s.loadSound(sa[++cps].earl, true);
}
trackInfo.text = sa[cps].track + \\\\\\\" - \\\\\\\" + sa[cps].album;
playPause.gotoAndStop(\\\\\\\"pause\\\\\\\");
textPos = 0;
}
function pauseIt():Void
{
pos = s.position;
s.stop();
}
function unPauseIt():Void
{
s.start(pos/1000);
}
playPause.onRollOver = function()
{
if(this._currentframe == 1) this.gotoAndStop(\\\\\\\"pauseOver\\\\\\\");
else this.gotoAndStop(\\\\\\\"playOver\\\\\\\");
}
playPause.onRollOut = playPause.onReleaseOutside = function()
{
if(this._currentframe == 10) this.gotoAndStop(\\\\\\\"pause\\\\\\\");
else this.gotoAndStop(\\\\\\\"play\\\\\\\");
}
playPause.onRelease = function()
{
if(this._currentframe == 10)
{
this.gotoAndStop(\\\\\\\"playOver\\\\\\\");
this._parent.pauseIt();
}
else
{
this.gotoAndStop(\\\\\\\"pauseOver\\\\\\\");
this._parent.unPauseIt();
}
}
next.onRollOver = function()
{
this.gotoAndStop(\\\\\\\"nextOver\\\\\\\");
}
next.onRollOut = next.onReleaseOutside = function()
{
this.gotoAndStop(\\\\\\\"next\\\\\\\");
}
next.onRelease = function()
{
this._parent.playSong();
}
mute.onRollOver = function()
{
if(this._currentframe == 1) this.gotoAndStop(\\\\\\\"onOver\\\\\\\");
else this.gotoAndStop(\\\\\\\"offOver\\\\\\\");
}
mute.onRollOut = mute.onReleaseOutside = function()
{
if(this._currentframe == 10) this.gotoAndStop(\\\\\\\"on\\\\\\\");
else this.gotoAndStop(\\\\\\\"off\\\\\\\");
}
mute.onRelease = function()
{
if(this._currentframe == 10)
{
this.gotoAndStop(\\\\\\\"offOver\\\\\\\");
s.setVolume(0);
}
else
{
this.gotoAndStop(\\\\\\\"onOver\\\\\\\");
s.setVolume(100);
}
}