ActionScript - Evitar doble reproduccion de sonido

 
Vista:
Imágen de perfil de fernando143
Val: 1
Ha mantenido su posición en ActionScript (en relación al último mes)
Gráfica de ActionScript

Evitar doble reproduccion de sonido

Publicado por fernando143 (1 intervención) el 17/02/2017 15:22:28
Hola, estoy haciendo una animación que en el frame 72 tiene un codigo que hace volver a repetir desde el frame 1

en el frame 1 tengo lo siguiente para reproducir un sonido
1
2
3
4
5
6
7
8
9
10
11
var reproduciendo:int=0;
if(reproduciendo==0){
 
	reproduciendo=1;
 
	var sonido:opening = new opening();
	var canal:SoundChannel;
	canal=sonido.play();
 
 
}

Esto es lo que tengo el el frame 72
1
2
3
4
5
6
7
8
9
10
11
var contador:int;
 
if(currentFrame==72)
{
	if(contador<1)//20 para 1min
	{
	contador = contador+1;
	gotoAndPlay(1);
	}
 
}

Sin embargo cuando el codigo del frame 72 hace volver al frame 1, el sonido se vuelve a reproducir, creo que me está sobreescribiendo la variable "reproduciendo" y por eso siempre se cumple el if.

Como hago para que no se reproduzca por segunda vez?


Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Evitar reproducción repetida de sonido al regresar al frame 1

Publicado por Alejandro (369 intervenciones) el 28/06/2023 23:11:16
Para evitar que el sonido se reproduzca nuevamente al regresar al frame 1 desde el frame 72, puedes utilizar una variable global que se mantenga constante en ambos frames. Aquí tienes la solución:

En el frame 1, declara una variable global fuera de cualquier función o evento, antes de la línea de código existente:

1
var reproduciendoGlobal:Boolean = false;

Luego, en el código existente del frame 1, modifica la condición `if(reproduciendo==0)` de la siguiente manera:

1
2
3
4
5
6
if (!reproduciendoGlobal) {
    reproduciendoGlobal = true;
    var sonido:opening = new opening();
    var canal:SoundChannel;
    canal = sonido.play();
}

De esta forma, la variable `reproduciendoGlobal` se utiliza para controlar si el sonido ya se ha reproducido anteriormente, evitando que se reproduzca nuevamente al regresar al frame 1 desde el frame 72.

Espero que esta solución resuelva tu problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar