Comunidad de diseño web y desarrollo en internet online

Boton Play-Pausa para sonido en Flash

Citar            
MensajeEscrito el 15 Feb 2008 05:55 pm
Hola!

He estado realizando el tutorial del apartado Flash Novatos> Boton Play-Pausa para sonido en Flash.

He hecho algunos cambios al código para que se reprodujera el sonido al empezar la película:

/* Primero declaramos dos variables, pausa y estado; pausa nos servirá
para almacenar la posición donde esta la canción, y estado para saber en que
estado se encuentra la canción, 1 si el sonido se está reproduciendo y 0 para el
estado en que el sonido esté en pause*/
var pausa:Number = 1;
var estado:Number = 1;
/* Como no le pusimos ninguna acción al Movie Clip, para que no se reprodujera
como loco, lo frenamos al comienzo*/
Boton_btn.stop();
/*Atachamos inmediatamente el sonido linkeado desde la biblioteca a una variable
llamada: "misonido"*/
_root.onLoad = function(){
misonido = new Sound();
misonido.attachSound("Sonido");
misonido.start(pausa/1000);
}

//En el evento onPress ó cuando presione el botón
Boton_btn.onPress = function (){
if (estado == 0){
/* se verifica en que estado se encuentra el sonido, si está en 0, ósea el sonido no se esta reproduciendo,
ponemos play al sonido; usamos la variable de pausa que contiene
lo que lleva la canción reproducida hasta el momento en milisegundos, por eso lo dividimos entre 1000;
para que nos de exactamente la posición donde se encuentra*/
misonido.start(pausa/1000);
//Una vez el sonido en play, cambiamos el estado a 1, ósea reproduciéndose
estado = 1;
//y finalmente cambiamos la apariencia del botón
Boton_btn.gotoAndStop("play");
} else {
/*En caso de que no sea 0, significa que se esta reproduciendo la canción y
queremos detenerla, primero calculamos la posición donde se va a quedar en pause
almacenándolo en la variable pausa*/
pausa = misonido.position;
//detenemos totalmente el sonido
misonido.stop();
//cambiamos el estado a 0, ósea sin sonido
estado = 0;
//y finalmente cambiamos la apariencia del botón
Boton_btn.gotoAndStop("pause");
}
}


Lo que ocurre es que cuando termina el bucle del sonido deja de sonar. Alguien me puede ayudar a encontrar alguna forma para que el sonido siga sonando igual que en la opción Reproducir Indefinidamente?

Muchas gracias

Baume

Por baume

6 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 15 Feb 2008 06:19 pm
En la línea de tiempo principal añade el evento "onSoundComplete" del objeto Sound:

Código :

misonido.onSoundComplete = function(){
     misonido.start();
}

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 15 Feb 2008 06:52 pm
Pues no, no funciona...

Añado estas líneas de código al principio de todas las acciones y el sonido sigue parándose al finalizar el bucle :o

Muchas gracias

misonido.onSoundComplete = function(){
misonido.start();
}

var pausa:Number = 1;
var estado:Number = 1;
/* Como no le pusimos ninguna acción al Movie Clip, para que no se reprodujera
como loco, lo frenamos al comienzo*/
Boton_btn.stop();
/*Atachamos inmediatamente el sonido linkeado desde la biblioteca a una variable
llamada: "misonido"*/
_root.onLoad = function(){
misonido = new Sound();
misonido.attachSound("Sonido");
misonido.start(pausa/1000);
}


//En el evento onPress ó cuando presione el botón
Boton_btn.onPress = function (){
if (estado == 0){
/* se verifica en que estado se encuentra el sonido, si está en 0, ósea el sonido no se esta reproduciendo,
ponemos play al sonido; usamos la variable de pausa que contiene
lo que lleva la canción reproducida hasta el momento en milisegundos, por eso lo dividimos entre 1000;
para que nos de exactamente la posición donde se encuentra*/
misonido.start(pausa/1000);
//Una vez el sonido en play, cambiamos el estado a 1, ósea reproduciéndose
estado = 1;
//y finalmente cambiamos la apariencia del botón
Boton_btn.gotoAndStop("play");
} else {
/*En caso de que no sea 0, significa que se esta reproduciendo la canción y
queremos detenerla, primero calculamos la posición donde se va a quedar en pause
almacenándolo en la variable pausa*/
pausa = misonido.position;
//detenemos totalmente el sonido
misonido.stop();
//cambiamos el estado a 0, ósea sin sonido
estado = 0;
//y finalmente cambiamos la apariencia del botón
Boton_btn.gotoAndStop("pause");
}
}

Por baume

6 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 15 Feb 2008 07:53 pm
Ok, vayamos por el principio ¿Cuál es la estructura, dónde colocas ese código? Lo que te dije antes no es para que lo coloques al principio de todas las acciones, con que lo declares en el _root basta o puedes ponerlo en el código que usas para cargar el objeto:

Código :

_root.onLoad = function(){
      misonido = new Sound();
      misonido.onSoundComplete = function(){ //<-------El evento que te comentaba antes.
            misonido.start();
      }
      misonido.attachSound("Sonido");
      misonido.start(pausa/1000);
}

Nota: Cuando postees código, enciérralo entre las etiquetas [*code] [*/code] (sin los asteriscos)

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 16 Feb 2008 10:46 pm
Muchas gracias, funciona! :D

Por baume

6 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 02 Mar 2008 08:54 am
Hola, he intentado guiarme fielmente del tutorial que se encuentra en esta dirección, agregándole lo que menciono The Fricky! aqui, en su ultima respuesta; Pero mi problema consiste en que el movie clip no deja de cambiar entre "play" y "pause" es decir, no se queda estático en un solo frame, como debiera de ser. Y cuando le doy click no pasa nada, no toca la canción que quiero ni se escucha cualquier otra cosa, quisiera saber si me podrían decir en donde consiste mi error, el código lo he puesto en el primer frame de un layer en la escena 1 (es la única escena). El código es el siguiente:

Código :

var pausa:Number = 0;
var estado:Number = 0;
Boton_btn.stop();
_root.onLoad = function(){
    misonido = new Sound();
    misonido.attachSound("clocks.mp3");
}
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");
    }
}
No se si este script debería ir en el clip, o en un layer, o donde, en fin, gracias de ante mano.

Por Aldemus

0 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 02 Mar 2008 01:59 pm
El script debe ir en un layer, en la película principal. Lo único que se me ocurre ahora es que revises si los nombres de los objetos están correctos porque el código parece estar bien, de acuerdo con el tutorial.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 18 Mar 2008 04:46 am
Hola, me funciona perfecto todo, pero no lo quiero poner en el primer frame, sino más adelante. Y no me funciona, no me doy cuenta de por qué... alguien me puede dar una mano?
Desde ya muchas gracias!
Saludos.

Por LupeZ

1 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 25 Mar 2008 10:54 pm
Ok, vamos a ver. El código consta de dos partes: La primera se refiere a la carga del sonido y la segunda a la reproducción. Entonces:

  1. Primero creamos el objeto Sound y cargamos el archivo:

    Código :

          misonido = new Sound();
          misonido.onSoundComplete = function(){ 
                misonido.start();
          }
          misonido.attachSound("Sonido");
    

    Puedes colocar eso en el primer fotograma si quieres. Si te fijas, quité la línea que inicia el sonido (start) para evitar que comience a sonar una vez cargado.

  2. Luego, la parte que inicia el sonido. Esto lo colocas en el fotograma que lo necesites:

    Código :

    play_btn.onRelease = function(){
       miSonido.start();
    }
    

    Donde "play_btn" debe ser el nombre de instancia del botón que reproduce el sonido.
    Y para detenerlo:

    Código :

    stop_btn.onRelease = function(){
       miSonido.stop();
    }
    

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 27 Mar 2008 04:20 am
Gracias por responder antes que nada. Pero no me funcionó. Lo q necesito es q la música se escuche una vez q se carguen algunas animaciones de la página. No quiero q la persona tenga q hacer clic para comenzar el sonido y tampoco quiero q se escuche música antes de q se terminen de ver todas las animaciones.
No me doy cuenta de cómo solucionarlo, la verdad.
Espero no ponerme muy molesta, pero tengo q quedar bien con el cliente...
Saludos!

Por LupeZ

1 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 05 Jul 2008 02:06 am
¿Me ha funcionado, pero se nota cuando hace la carga del sonido de nuevo, saben como arreglar esto? Es decir, que reproduzca sin ese pequeño momento de silencio en lo que carga de nuevo el audio?

Por Herodes

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Jul 2008 03:37 am
A menos que vuelvas al fotograma donde está al attachSound en sonido no se cargará de nuevo. Lo más probable es que la pausa esté en el archivo de audio. En ese caso tienes que modificar el archivo de audio y quitarle el silencio al final.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

mozilla
Citar            
MensajeEscrito el 03 Feb 2010 11:14 pm
Necesito ayuda urgente!
Cuando pruebo el código en dos capas solitas me funciona a la perfección. Cuando lo quiero integrar en un swf que tiene el contenido de una página web con un preloader no tengo señales de vida de que se cargue el sonido, le pongo traces dentro del evento onSoundComplete y nada de nada. Como tengo preloader la exportación a actionscript esta hecha desactivando el flag de exportar en primer fotograma, no sé si eso ayudará algo pero ya no sé que más probar porque yo lo veo ok, eso sí, los comandos del botón funcionan perfectamente :-(

Por pixmaniac

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Jul 2010 06:29 pm

pixmaniac escribió:

Necesito ayuda urgente!
Cuando pruebo el código en dos capas solitas me funciona a la perfección. Cuando lo quiero integrar en un swf que tiene el contenido de una página web con un preloader no tengo señales de vida de que se cargue el sonido, le pongo traces dentro del evento onSoundComplete y nada de nada. Como tengo preloader la exportación a actionscript esta hecha desactivando el flag de exportar en primer fotograma, no sé si eso ayudará algo pero ya no sé que más probar porque yo lo veo ok, eso sí, los comandos del botón funcionan perfectamente :-(


Hola otra vez aqui mira yo tube el mismo problema y estudiando mucho los dos codigos que te dan aqui logre hacerlo asi

Código ActionScript :

var pausa:Number = 0;
var estado:Number = 0;
Boton_btn.stop();
var misonido:Sound = 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");
   }
};


con esto puedes hacerlo usando el tutorial de

Código HTML :

http://www.cristalab.com/tutoriales/boton-play-pausa-para-sonido-en-flash-c146l/

pero sustituye el codigo que te da wanaya por el mi y veras q si funciona
espero haberte ayudado

Por Battosai666

89 de clabLevel



 

Mexico

msie8
Citar            
MensajeEscrito el 14 Jul 2010 01:55 am
Hola,
He realizado el codigo propuesto y me ha funcionado "casi" a la perfeccion.
Inicia la música, al darle click se detiene y al darle click de nuevo inicia donde quedo, tal como queria. El problema es que no cambia la apariencia del boton...siempre esta solamente la imagen del play.
Les copio el codigo a ver si me pueden ayudar a corregir lo que esta mal.
Gracias!

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

Por milenad

0 de clabLevel



 

msie8
Citar            
MensajeEscrito el 28 Oct 2010 07:04 pm
este es el codigo que le di para que funcionara desde cualquier fotograma en la linea de tiempo, eso si deben poner que exporte en el primer fotograma en las propiedades del audio en la biblioteca.
El sonido comienza desde el principio.


var pausa:Number = 1;
var estado:Number = 1;

boton_mc.stop();

var misonido:Sound = new Sound()
misonido.onSoundComplete = function(){
misonido.start();
}
misonido.attachSound("Sonido");
misonido.start(pausa/1000);

boton_mc.onPress = function() {
if (estado == 0) {
misonido.start(pausa/1000);
estado = 1;
boton_mc.gotoAndStop("play");

} else {

pausa = misonido.position;
misonido.stop();
estado = 0;
boton_mc.gotoAndStop("pause");
}
};

Por rivisa

1 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 29 Oct 2010 08:09 pm

milenad escribió:

Hola,
He realizado el codigo propuesto y me ha funcionado "casi" a la perfeccion.
Inicia la música, al darle click se detiene y al darle click de nuevo inicia donde quedo, tal como queria. El problema es que no cambia la apariencia del boton...siempre esta solamente la imagen del play.
Les copio el codigo a ver si me pueden ayudar a corregir lo que esta mal.
Gracias!


Recuerda que a los Frames debes de ponerle la instancia llamada pausa y play para q cambie sino no lo hara ami tambien me paso lo mismo por no poner la instancia al frame

:D
XD

Por Battosai666

89 de clabLevel



 

Mexico

chrome
Citar            
MensajeEscrito el 05 Nov 2010 07:56 pm

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

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

firefox
Citar            
MensajeEscrito el 23 Dic 2010 03:49 am
Hola a todos,

tengo el siguiente problema:

Tengo mi animacion con 10 escenas y coloque que se reprodusca un sonido con el siguiente codigo en la linea de tiempo principal:

s1 = new Sound();
s1.attachSound("Sinfonia");

//
var sonido_actual = "s1";
var tiempo_actual = 1;
var ejecutando = 0;

Esto para el boton PLAY:

on (press) {
stopAllSounds();
eval("s1").start(1);
ejecutando=1;
}

y esto para el STOP:

on (press) {
eval("s1").stop();
ejecutando=0;
}

El problema es que el sonido es un loop de fondo que dura muy poco unos 3 segundos y solo lo repite una ves cuando le doy play. Como hago para que lo reprodusca indefinidamente???

Les agradecieria una ayuda, abrazo a todos

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

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

firefox
Citar            
MensajeEscrito el 23 Dic 2010 08:09 pm

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

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

firefox
Citar            
MensajeEscrito el 05 Mar 2011 02:36 pm
hola, leí todas las respuestas pero tengo un problema que no he solucionado, quiero que cuando se acabe el sonido vuelva a comenzar y así hasta que le pongan pause, pero no puedo lograrlo, cuando se termina el sonido no vuelve a comenzar :(

Por santirekapo90

68 de clabLevel



 

chrome

 

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