Comunidad de diseño web y desarrollo en internet online

Pregunta sobre el tutorial "Boton Play-Pausa para sonido"

Citar            
MensajeEscrito el 04 Sep 2008 06:13 am
Hola, mi duda es con respecto a dicho tutorial.

http://www.cristalab.com/tutoriales/146/boton-play-pausa-para-sonido-en-flash.html
y este su AS:

Código :

Boton_btn.stop();
var pausa:Number = 0;
var estado:Number = 0;
_root.onLoad = function(){
    misonido = new Sound();
    misonido.attachSound("Sonido");
}
Boton_btn.onPress = function (){
    if (estado == 0){
        misonido.start(pausa/1000);
        estado = 1;
        Boton_btn.gotoAndStop("pause");
    } else {
        pausa = misonido.position;
        misonido.stop();
        estado = 0;
        Boton_btn.gotoAndStop("play");
    }
}

Todo esta muy bien y super facil de seguir pero que hago si termino el audio y quiero volver a escuchar desde el principio?

Hay alguna forma de que cuando termine la reproduccion del audio regrese al principio y con clikear play vuelva a empezar?


Muchas gracias por la ayuda !!!!!!!

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Sep 2008 09:29 am
Por supuesto, puedes colocar una función de onSoundComplete, para que cuando termine vuelva a inicializar las variables en 0.

Código ActionScript :

misonido.onSoundComplete = function():Void{
   
    estado = 0;
    pausa = 0;
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 04 Sep 2008 04:23 pm
Muchas gracias !!!!!!!!!!

Super util esta tecnica !!!!

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Sep 2008 07:08 am
Tuve un problema al tratar de utilizar esta funcion 2 veces en diferentes botones para 2 sonidos diferentes...
uno de los 2 no funciona

este es el boton 1:

Código :

Boton1_btn.stop();
var pausa:Number = 0;
var estado:Number = 0;
_root.onLoad = function(){
    misonido1 = new Sound();
    misonido1.attachSound("Sonido1");
}
Boton1_btn.onPress = function (){
    if (estado == 0){
        misonido1.start(pausa/1000);
        estado = 1;
        Boton1_btn.gotoAndStop("pause");
    } else {
        pausa = misonido1.position;
        misonido1.stop();
        estado = 0;
        Boton_btn1.gotoAndStop("play");
    }
}


este es el boton 2:

Código :

Boton2_btn.stop();
var pausa:Number = 0;
var estado:Number = 0;
_root.onLoad = function(){
    misonido2 = new Sound();
    misonido2.attachSound("Sonido2");
}
Boton2_btn.onPress = function (){
    if (estado == 0){
        misonido2.start(pausa/1000);
        estado = 1;
        Boton2_btn.gotoAndStop("pause");
    } else {
        pausa = misonido2.position;
        misonido2.stop();
        estado = 0;
        Boton2_btn.gotoAndStop("play");
    }
}


Intente ponerlos en timeLines diferetes pero no ... no funciona

Que puedo hacer??

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Sep 2008 08:54 am
Como primer problema tienes dos eventos de onLoad de la raiz, por lo tanto se quedará con uno de los dos y no te inicializará uno de los dos sonidos, no hace falta que pongas el onLoad, con poner la declaración de los sonidos directamente es suficiente.

Código ActionScript :

Boton1_btn.stop();
var pausa:Number = 0;
var estado:Number = 0;

misonido1 = new Sound();
misonido1.attachSound("Sonido1");


Debes tener también dos variables "estado" ya que al presionar un boton esta adquiere un valor que no tiene por qué ser el mismo del otro botón.

Dentro de los botones no es necesario que pongas:

Código ActionScript :

Boton2_btn.gotoAndStop("pause");


Puedes decir

Código ActionScript :

this.gotoAndStop("pause");


Creo que con esto no tendrás problemas.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 05 Sep 2008 03:53 pm
Super !!!

Al parecer asi es como me funciona... por si alguien mas lo necesita ya tiene tambien regreso automatico cuando acaba el audio

Código :

Boton1_btn.stop();
var pausa:Number = 0;
var estado1:Number = 0;
{
    misonido1 = new Sound();
    misonido1.attachSound("Sonido1");
}
Boton1_btn.onPress = function (){
    if (estado1 == 0){
        misonido1.start(pausa/1000);
        estado1 = 1;
        this.gotoAndStop("pause");
    } else {
        pausa = misonido1.position;
        misonido1.stop();
        estado1 = 0;
        this.gotoAndStop("play");
    }
misonido1.onSoundComplete = function():Void{ 
    estado1 = 0; 
    pausa = 0; 
    Boton1_btn.gotoAndStop("play");
    } 
}

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Sep 2008 03:56 pm
Muchas Gracias *elchininet* !!!!

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Sep 2008 04:05 pm
Para terminar saca la función de "onSoundComplete" de dentro de los handlers de la acción del botón:

Código ActionScript :

Boton1_btn.onPress = function() {
   if (estado1 == 0) {
      misonido1.start(pausa/1000);
      estado1 = 1;
      this.gotoAndStop("pause");
   } else {
      pausa = misonido1.position;
      misonido1.stop();
      estado1 = 0;
      this.gotoAndStop("play");
   }

};

misonido1.onSoundComplete = function():Void  {
   estado1 = 0;
   pausa = 0;
   Boton1_btn.gotoAndStop("play");
};

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Sep 2008 06:48 pm
Hola, hay un problema...

De manera local todo funciona muy bien, pero en linea no suena...

Que puede ser?

G R A C I A S

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Sep 2008 08:02 pm
Estás cargando la película que contiene el sonido en otra película?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 22 Sep 2008 11:45 pm
asi es ....
lo estoy cargando desde otra peli (afirmativo)

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Sep 2008 08:21 pm
Bueno, el sonido no debe estar an la biblioteca del SWF que cargas, sino en la biblioteca del SWF principal.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 29 Sep 2008 09:26 pm
Cuando inserto el SWF principal en un html no se escuacha a pesar de hacer lo ultimo que mensionas...
que se puede hacer?

Saludos

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Sep 2008 09:39 pm
Y te funciona antes de ponerlo en el html?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 30 Sep 2008 01:16 am
si, en el puro flash player su funciona...
ya intente en ffox y iexplorer y no suena...

Por tekman

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Sep 2008 10:22 am
Intenta publicar el html desde el mismo flash y postea si sigue sin funcionarte.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 15 Ago 2009 05:47 pm
Hola, no tengo mucha pericia en as y ando siguiendo un tutorial para insertar sonido a través de un único botón play/pause.
El tutorial funciona perfectamente pero me gustaría que una vez termina la reproducción del mp3 se pudiera volver a reproducir pulsando play, es decir, que todo volviera a su estado inicial.

Este es el código que he utilizado:

escribió:

var pausa:Number = 0;
var estado:Number = 0;

Boton_btn.stop();

_root.onLoad = function() {
misonido = new Sound();
misonido.attachSound("Sonido");
};

Boton_btn.onPress = function() {
if (estado == 0) {
misonido.start(pausa/1000);
estado = 1;
Boton_btn.gotoAndStop("pause");
} else {
pausa = misonido.position;
misonido.stop();
estado = 0;
Boton_btn.gotoAndStop("play");
}
};

misonido.onSoundComplete = function():Void {
var pausa:Number = 0;
var estado:Number = 0;
};




Si alguien me pudiera ayudar con este tema se lo agradecería

Saludos

Por Ángel Rodríguez

1 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 16 Ago 2009 09:46 pm
Según el código que has posteado eso es lo que debe suceder cuando presiones el botón una vez acabado el sonido, postea cual es el problema que te da para ver si se puede detectar donde esta el error.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Ago 2009 02:44 am
hola soy nuevo en esto de los foros asi q cualqier error q cometa xfa comprendanme gracias ...
bueno mira fijate q ace un tiempo yo tube q crear un mini reproductor de flash (animacion y sonido) y pues creoq te te puede servir ya q se basa en 3 botones q son play pausa y stop estos se habilitan y desabilitan segun sea el caso x ejemplo no puede estar abilitado el play mientras se reproduce la cancion, y mientras no le des play no reproduce y solo el play esta abilitado


/* Declaramos dos variables, una es pausa que servirá para indicarnos la posición de la canción y estado para saber si está reproduciéndose, con el 1, o está parada, con el 0*/
var pausa:Number = 0;
var estado:Number = 0;
var nfotograma:Number;
var pausePoint:Number = 0.00;
/* Paramos el boton para que no se reproduzca al inicio*/
_root.stop();
/*Vinculamos inmediatamente el sonido "Cancion" a la variable sonido" */
_root.onLoad = function()
{
sonido = new Sound();
sonido.attachSound("Cancion");
}
nfotograma=_root._currentFrame;
if(nfotograma == 1)
{
_root.btnplay.enabled=true;
_root.btnplay._alpha=100;
_root.btnpausa.enabled=false;
_root.btnpausa._alpha=20;
_root.btnstop.enabled=false;
_root.btnstop._alpha=20;
}
//Evento para decirle que cuando pulses con el botón de la orden
_root.btnplay.onPress = function ()
{
nfotograma=_root._currentFrame;
if(nfotograma > 1)
{
gotoAndPlay(nfotograma);
}else
{
gotoAndPlay(2);
}

if (estado == 0)
{
/* Verificamos en que estado está la canción, si está en 0, la canción no estará reproduciéndose. Ponemos play cancion, usando la variable de pausa que contiene
el estado de la reproducción en milisegundos, por lo que dividimos entre 1000 y obtendremos la posición exacta**/
sonido.start(pausa/1000);
//Una vez se reproduzca la canción, cambiamos el estado a 1, que significa que se está reproduciendo
estado = 1;
//cambiamos la apariencia del botón
_root.btnplay.enabled=false;
_root.btnplay._alpha=20;
_root.btnpausa.enabled=true;
_root.btnpausa._alpha=100;
_root.btnstop.enabled=true;
_root.btnstop._alpha=100;
}

}
_root.btnpausa.onPress = function ()
{
_root.stop();
action="stop";
/*Si no es 0, significará que se reproduce la canción, usaremos la variable pausa para
almacenar la posicion en la que está reproduciéndose*/
pausa = sonido.position;
//pausamos el sonido
sonido.stop();
//lo dejamos sin sonido
estado = 0;

//cambiamos la apariencia del botón
_root.btnplay.enabled=true;
_root.btnplay._alpha=100;
_root.btnpausa.enabled=false;
_root.btnpausa._alpha=20;
}
_root.btnstop.onPress = function ()
{
gotoAndPlay(1);
pausa = sonido.position(1);
//pausamos el sonido
sonido.stop();
//lo dejamos sin sonido
estado = 0;
//cambiamos la apariencia del botón
_root.btnplay.enabled=true;
_root.btnplay._alpha=100;
_root.btnpausa.enabled=false;
_root.btnpausa._alpha=20;
_root.btnstop.enabled=false;
_root.btnstop._alpha=20;
}

Por dimatrix

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Oct 2010 09:01 pm
hola, he estado trabajando en el boton on/off dl tutorial todo mr resuta hasta que al poner dos botones me toma la pausa en los dos botones es decir, hago play a uno, lo detengo, haglo paly al segundo y este comienza en los segundo en que quedo en pausa el otro, quien me puede ayuda?? es es el codigo.

Código :

Boton1_btn.stop();
var pausa1:Number = 0;
var estado1:Number = 0;

{

    misonido1 = new Sound();
    misonido1.attachSound("Sonido1");
}
Boton1_btn.onPress = function (){
    if (estado1 == 0){
        misonido1.start(pausa/1000);
        estado1 = 1;
        this.gotoAndStop("pause");
    } else {
        pausa1 = misonido1.position;
        misonido1.stop();
        estado1 = 0;
        this.gotoAndStop("play");
    }
misonido1.onSoundComplete = function():Void{ 
    estado1 = 0; 
    pausa1 = 0; 
    Boton1_btn.gotoAndStop("play");
    } 
}
Boton_btn.stop();
var pausa:Number = 0;
var estado:Number = 0;
{
    misonido = new Sound();
    misonido.attachSound("promps1");
}
Boton_btn.onPress = function (){
    if (estado == 0){
        misonido.start(pausa/1000);
        estado = 1;
        Boton_btn.gotoAndStop("pause");
    } else {
        pausa = misonido.position;
        misonido.stop();
        estado = 0;
        Boton_btn.gotoAndStop("play");
    }
misonido.onSoundComplete = function():Void{ 
    estado = 0; 
    pausa = 0; 
    Boton_btn.gotoAndStop("play");
    } 
}

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 10 Oct 2010 03:20 am
lo que yo veo es que estas poniendo el codigo en ambos botones ...
entonces lo hara dos veces. si lo que qeres es hacer que uno haga pausa y el otro play hace una funcion que utilicen los dos botones y que el boton le mande a la funcion el estado "estado=0" si esta en play y pasa a pausa o su inversa
lo unico que pones es lo que tienen adentro los botones espero haber ayudado :cool:

cymartor escribió:

hola, he estado trabajando en el boton on/off dl tutorial todo mr resuta hasta que al poner dos botones me toma la pausa en los dos botones es decir, hago play a uno, lo detengo, haglo paly al segundo y este comienza en los segundo en que quedo en pausa el otro, quien me puede ayuda?? es es el codigo.

Código :

Boton1_btn.stop();
var pausa1:Number = 0;
var estado1:Number = 0;

{

    misonido1 = new Sound();
    misonido1.attachSound("Sonido1");
}
Boton1_btn.onPress = function (){
    if (estado1 == 0){
        misonido1.start(pausa/1000);
        estado1 = 1;
        this.gotoAndStop("pause");
    } else {
        pausa1 = misonido1.position;
        misonido1.stop();
        estado1 = 0;
        this.gotoAndStop("play");
    }
misonido1.onSoundComplete = function():Void{ 
    estado1 = 0; 
    pausa1 = 0; 
    Boton1_btn.gotoAndStop("play");
    } 
}
Boton_btn.stop();
var pausa:Number = 0;
var estado:Number = 0;
{
    misonido = new Sound();
    misonido.attachSound("promps1");
}
Boton_btn.onPress = function (){
    if (estado == 0){
        misonido.start(pausa/1000);
        estado = 1;
        Boton_btn.gotoAndStop("pause");
    } else {
        pausa = misonido.position;
        misonido.stop();
        estado = 0;
        Boton_btn.gotoAndStop("play");
    }
misonido.onSoundComplete = function():Void{ 
    estado = 0; 
    pausa = 0; 
    Boton_btn.gotoAndStop("play");
    } 
}

Por dimatrix

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.