Retroceder   Foros del Web > Programación para sitios web > Javascript

Respuesta
 
Herramientas Desplegado
Antiguo 12-ago-2004, 06:27   #1 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
>> Apagar/encender música de fondo <<

Hola a tod@s.
NOTA: Cómo no sé donde va esta pregunta, la pongo aquí.
Si no corresponde, que los moderadores la cambien

¡¡¡Gracias!!!

Mi pregunta es:

¿Cual sería el código para poner música de fondo (esto lo sé), pero que se pudiera ENCENDER y APAGAR haciendo click en una misma IMAGÉN (no dos imágenes diferentes) y que estén posicionadas en el mismo sitio (o sea, que una esté encima de la otra, ocupando el mismo sitio) ... ?

He estado mirando la página de caricatos (¡¡¡Hola !!!) www.sucaricatura.com, a la izquierda-abajo donde está el piano (eso es lo que quiero), pero no logro descifrar de cual es el código (me lio, ¡torpe, torpe! que soy y no doy para más ).

Gracias a tod@s y un abrazo
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·

Última edición por seoista; 12-ago-2004 a las 06:28.
seoista está desconectado   Responder Citando
Antiguo 12-ago-2004, 12:13   #2 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.218
Hola seoista:

Justamente mi primera participación en estos foros, era respondiéndo esa misma pregunta formulada en esa ocasión por KarlanKas (¡Hola !)

Sencillamente se trata de un frame oculto en donde al pinchar en el piano se carga una página con un fondo musical cambiándose la imágen por el pianito, y al volver a pinchar se cambia la imagen otra vez cargándose otra página sin fondo musical...

Si no quieres usar marcos propuse hace un tiempo un tema sobre precarga de sonidos (supongo que lo podrás buscar) y el código es bastante más complejo... o tal vez la página de las postales que hay aquí: http://www.pepemolina.com/postales

Intenta implementarlo (sé que puedes) y si tienes problemas avisa...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos está desconectado   Responder Citando
Antiguo 13-ago-2004, 03:48   #3 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
Gracias caricatos, lo miraré y ya te diré.

Saludos
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·
seoista está desconectado   Responder Citando
Antiguo 13-ago-2004, 05:59   #4 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
Cita:
Iniciado por caricatos
Hola seoista:

Justamente mi primera participación en estos foros, era respondiéndo esa misma pregunta formulada en esa ocasión por KarlanKas (¡Hola !)
¡Esta no la encuentro!.


Cita:
Iniciado por caricatos
Si no quieres usar marcos propuse hace un tiempo un tema sobre precarga de sonidos (supongo que lo podrás buscar) y el código es bastante más complejo... o tal vez la página de las postales que hay aquí: http://www.pepemolina.com/postales

Intenta implementarlo (sé que puedes) y si tienes problemas avisa...
¿Te refieres a este?:
Código:
<script type="text/javascript">
var sones;

function _desactivar()	{
	this.sonido.innerHTML = "";
}

function _activar()	{
	var son = "<embed src='" + this.son[_activar.arguments[0]].src + "' autostart='true' hidden='true' style='display: inline'></embed>";
	this.sonido.innerHTML = son;
}

function preSonidos()	{
	this._entradas = preSonidos.arguments;
	this.total = this._entradas.length;
	this.son = new Array(this.total);
	for (var i = 0; i < this.total; i ++)	{
		this.son[i] = document.createElement("embed");
		this.son[i].src = this._entradas[i];
		this.son[i].autostart = false;
		this.son[i].style.display = "none";
		document.body.appendChild(this.son[i]);
	}
	this.sonando = false;
	this.incrustado = false;
	this.activar = _activar;
	this.desactivar = _desactivar;
	this.sonido = document.createElement("div");
	document.body.appendChild(this.sonido);
}

function ini()	{
	sones = new preSonidos('celtic0.mid', 'celtic1.mid', 'celtic2.mid', 'celtic3.mid', 'Starway_to_Heaven.mp3');
}
</script> 

y el body de ejemplo:

<body onload="ini();">
<button onclick="sones.activar(0)">celtic0.mid</button>
<button onclick="sones.activar(1)">celtic1.mid</button>
<button onclick="sones.activar(2)">celtic2.mid</button>
<button onclick="sones.activar(3)">celtic3.mid</button>
<button onclick="sones.activar(4)">Starway_to_Heaven.mp3</button>
<button onclick="sones.desactivar()">desactivar</button>
<br />
</body>
Pero yo lo quiero sin button (lo que he puesto en rojo), sino con un solo sónido y una imagen para apagar y encender, cómo tienes en tu pàgina (www.sucaricatura.com - EL PIANO).

Perdona que te moleste tanto.

Saludos caricatos
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·
seoista está desconectado   Responder Citando
Antiguo 13-ago-2004, 09:46   #5 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.218
Hola otra vez:

El tema que no encuentras es este: Intercambiar sonidos para que no se solapen.
... y dice lo que te dije antes, pero tal como dije, se trata de usar frames...

Con respecto al otro código, es fácil adaptarlo en una imagen:

function ini() {
sones = new preSonidos('tuMusica.mid');
}

... y si usas las imágenes: activo.gif e inactivo.gif:

<img src=inactivo.gif onclick="if (this.src == 'activo.gif') {this.src = 'inactivo.gif'; sones.desactivar()} else {this.src = 'activo.gif'; sones.activar(0)}" />

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos está desconectado   Responder Citando
Antiguo 13-ago-2004, 23:54   #6 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
Otra vez aquí caricatos.

He puesto este código:
Código:
<html>
<head>

<title>#</title>

<script type="text/javascript">
var sones;

function _desactivar()	{
	this.sonido.innerHTML = "";
}

function _activar()	{
	var son = "<embed src='" + this.son[_activar.arguments[0]].src + "' autostart='true' hidden='true' 

style='display: inline'></embed>";
	this.sonido.innerHTML = son;
}

function preSonidos()	{
	this._entradas = preSonidos.arguments;
	this.total = this._entradas.length;
	this.son = new Array(this.total);
	for (var i = 0; i < this.total; i ++)	{
		this.son[i] = document.createElement("embed");
		this.son[i].src = this._entradas[i];
		this.son[i].autostart = false;
		this.son[i].style.display = "none";
		document.body.appendChild(this.son[i]);
	}
	this.sonando = false;
	this.incrustado = false;
	this.activar = _activar;
	this.desactivar = _desactivar;
	this.sonido = document.createElement("div");
	document.body.appendChild(this.sonido);
}

function ini() {
sones = new preSonidos('grease.mid');
}

</script> 

</head>

<body onload="ini();">

<img src=desactivar.gif onclick="if (this.src == 'activar.gif') {this.src = 'desactivar.gif'; sones.desactivar()} else 

{this.src = 'activar.gif'; sones.activar(0)}" />

</body>
</html>
Es lo que quiero y funciona ... ¡pero! ...

1.- Al abrir la página comienza la música y la imagen que se vé es "PARAR MUSICA" (CORRECTO).

2.- Al hacer click en la imagen "PARAR MUSICA", la para, ... pero ... ¡sólo durante unos segundos! y sigue sonando, y aunque continue pinchando la imagen que está en ese momento ("OIR MUSICA"), ... no hace "ná de ná" ..., la imagen no cambia y la musica continua indefinidamente (INCORRECTO]).

Vaya coñazo que te estoy dando, pero, es que no me funciona bien.

Muchas gracias por las molestias que te estoy causando.

Hasta luego
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·

Última edición por seoista; 18-ago-2004 a las 05:34.
seoista está desconectado   Responder Citando
Antiguo 14-ago-2004, 02:35   #7 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.218
Hola otra vez:

Con qué navegador lo has probado... me parece que con opera no va bien...

Cuando pueda poner los altavoces lo pruebo... de todos modos te paso un enlace con otro código parecido: http://www.pepemolina.com/sonidos/index5.html

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos está desconectado   Responder Citando
Antiguo 14-ago-2004, 03:10   #8 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
Hola de nuevo caricatos y gracias por las molestias que te estás tomando.


Cita:
Iniciado por caricatos
Con qué navegador lo has probado... me parece que con opera no va bien...
Con "Internet Eexplorer 6.0", no uso otro.


Cita:
Iniciado por caricatos
Cuando pueda poner los altavoces lo pruebo...
Veo que han cortado el servidor (www.iespana.es). ¡Estarán en mantenimiento!.


Cita:
Iniciado por caricatos
de todos modos te paso un enlace con otro código parecido: http://www.pepemolina.com/sonidos/index5.html
Lo probaré también y ya te contaré.

Ruego perdones mis molestias, soy un plasta .

Mientras tanto, recibe un abrazos
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·
seoista está desconectado   Responder Citando
Antiguo 14-ago-2004, 04:05   #9 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.218
Hola otra vez:

Creo que sé la razón de que no funcione...

Al comparar el valor del src de una imagen el navegador, aunque se le dé una ruta corta, te devuelve la ruta completa.

En vez de usar src, prueba con otra cosa, incluso puedes crearte un atributo o usar una variable global...

<img src=desactivar.gif onclick="if (activo == 'si') {activo = 'no'; sones.desactivar()} else
{activo = 'si'; sones.activar(0)}" />

y en otra parte de la página inicializar la variable activo:
var activo = "si"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos está desconectado   Responder Citando
Antiguo 14-ago-2004, 05:49   #10 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
caricatos, otra vez el

He tardado un poco en contestar porque he estado probando de distintas formas, pero ... psee ... , no lo entiendo bien. Hay que machacármelo .

Te digo:
Cita:
Iniciado por caricatos
<img src=desactivar.gif onclick="if (activo == 'si') {activo = 'no'; sones.desactivar()} else
{activo = 'si'; sones.activar(0)}" />
Veo que solo hay una imagen (desactivar.gif)


Le falta la otra imagen (activar.gif)

(las he puesto en otro servidor para que la veas, ya que sigue sin funcionar w w w.iespana.es).

Quiero que cuendo esté funcionando la música, aparezca la imagen "PARAR MUSICA" y cuando pulse esta, se pare y aparezca la imagen "OIR MUSICA", para que esta vuelva a comenzar. --> (no sé si me he explicado bien)


Cita:
y en otra parte de la página inicializar la variable activo:
var activo = "si"
¿Esto donde lo pongo?. ¿Aquí? (lo he señalado en rojo):

<html>
<head>

<title>#</title>

<script type="text/javascript">
var sones;

function _desactivar() {
this.sonido.innerHTML = "";
}

function _activar() {
var son = "<embed src='" + this.son[_activar.arguments[0]].src + "' autostart='true' hidden='true' style='display: inline'></embed>";
this.sonido.innerHTML = son;
}

function preSonidos() {
this._entradas = preSonidos.arguments;
this.total = this._entradas.length;
this.son = new Array(this.total);
for (var i = 0; i < this.total; i ++) {
this.son[i] = document.createElement("embed");
this.son[i].src = this._entradas[i];
this.son[i].autostart = false;
this.son[i].style.display = "none";
document.body.appendChild(this.son[i]);
}
this.sonando = false;
this.incrustado = false;
this.activar = _activar;
this.desactivar = _desactivar;
this.sonido = document.createElement("div");
document.body.appendChild(this.sonido);
}

function ini() {
sones = new preSonidos('grease.mid');
}
var activo = "si" //------> (DIME SI VA AQUI o DONDE)

</script>

</head>

<body onload="ini();">

<img src=desactivar.gif onclick="if (activo == 'si') {activo = 'no'; sones.desactivar()} else
{activo = 'si'; sones.activar(0)}" />
<br />

</body>
</html>


Te diré que funciona bastante bien, pulsando en "PARAR MUSICA" se para la música y pulsando otra vez "PARAR MUSICA" (ya que no cambia a "OIR MUSICA"), vuelve a oirse (TODO ESTO CORRECTO). Menos el cambio de imagen.

Un abrazo y paciencia conmigo.

P.D.: Joder, que "coñazo" te estoy dando
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·

Última edición por seoista; 14-ago-2004 a las 05:53.
seoista está desconectado   Responder Citando
Antiguo 14-ago-2004, 10:48   #11 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.218
Hola otra vez:

Se trata de volver a poner el this.src...

Lo quité en el script por hacer otra comparación y usar una variable nueva... tan solo tienes que poner:

<img src=desactivar.gif onclick="if (activo == 'si') {activo = 'no'; sones.desactivar(); this.src = 'sactivar.gif'} else
{activo = 'si'; sones.activar(0); this.src = 'desactivar.gif'}" />

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos está desconectado   Responder Citando
Antiguo 14-ago-2004, 13:27   #12 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
Vuelvo otra vez .
Cita:
Iniciado por caricatos
<img src=desactivar.gif onclick="if (activo == 'si') {activo = 'no'; sones.desactivar(); this.src = 'sactivar.gif'} else
{activo = 'si'; sones.activar(0); this.src = 'desactivar.gif'}" />
Esto es una pregunta tonta (como todas las mías), pero la "s" que está en rojo sobra, ¿verdad?.

Bueno, mañana lo miraré y diré como me ha ido (ahora estoy en mi trabajo, de 0900 de la noche hasta las 0900 de mañana).

¡Esperemos que ahora funcione!.

Hasta mañana y cierro .

Un abrazo
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·

Última edición por seoista; 15-ago-2004 a las 01:24.
seoista está desconectado   Responder Citando
Antiguo 15-ago-2004, 01:58   #13 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
Hola caricatos.

Con este código: () () ()
Código:
<html>
<head>

<title>Musica</title>

<script type="text/javascript">
var sones;

function _desactivar()	{
	this.sonido.innerHTML = "";
}

function _activar()	{
	var son = "<embed src='" + this.son[_activar.arguments[0]].src + "' autostart='true' hidden='true' style='display: inline'></embed>";
	this.sonido.innerHTML = son;
}

function preSonidos()	{
	this._entradas = preSonidos.arguments;
	this.total = this._entradas.length;
	this.son = new Array(this.total);
	for (var i = 0; i < this.total; i ++)	{
		this.son[i] = document.createElement("embed");
		this.son[i].src = this._entradas[i];
		this.son[i].autostart = false;
		this.son[i].style.display = "none";
		document.body.appendChild(this.son[i]);
	}
	this.sonando = false;
	this.incrustado = false;
	this.activar = _activar;
	this.desactivar = _desactivar;
	this.sonido = document.createElement("div");
	document.body.appendChild(this.sonido);
}

function ini() {
sones = new preSonidos('grease.mid');
}
var activo = "si"

</script> 

</head>

<body onload="ini();">

<img src=desactivar.gif onclick="if (activo == 'si') {activo = 'no'; sones.desactivar(); this.src = 'activar.gif'} else 
{activo = 'si'; sones.activar(0); this.src = 'desactivar.gif'}" />

</body>
</html>
Lo que pasa es que NO ABRE LA PAGINA CON LA MUSICA YA FUNCIONANDO (que es lo que me interesaría), hay que pinchar primero en la imagen y después SI va bien, así como los cambios de imagenes.

Muchas gracias por la paciencia que estas teniendo ... con este "zoquete".

Un abrazo
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·

Última edición por seoista; 15-ago-2004 a las 02:55.
seoista está desconectado   Responder Citando
Antiguo 15-ago-2004, 03:31   #14 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.218
Hola otra vez:

Para que suene al principio habría que hacer pequeñas modificaciones...

function ini() {
sones = new preSonidos('grease.mid');
sones.activar(0);
}
var activo = "no";

...

<img src=activar.gif onclick="if (activo == 'si') {activo = 'no'; sones.desactivar(); this.src = 'activar.gif'} else
{activo = 'si'; sones.activar(0); this.src = 'desactivar.gif'}" />

Supongo que con lo marcado sería suficiente...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos está desconectado   Responder Citando
Antiguo 15-ago-2004, 06:16   #15 (permalink)
seoista tiene algunos puntos positivos de karma
 
Avatar de seoista
 
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 818
Ahora Si

Ahora "SI" caricatos.

¡¡¡ Muchisiiiiisimas gracias !!!


Cómo ya sabes, aquí tienes un amigo para lo que quieras
(¡¡¡ menos para que te proporcione códigos !!!)

Un abrazo y
__________________
· Lo poco que sé, lo he aprendido de AQUÍ ·
· No contesto por M.P. ·
seoista está desconectado   Responder Citando
Antiguo 16-ago-2004, 03:51   #16 (permalink)
Moderador
caricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy prontocaricatos llegará a ser famoso muy pronto
 
Avatar de caricatos
 
Fecha de Ingreso: noviembre-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 12.218


¡Hasta otra!
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
caricatos está desconectado   Responder Citando
Antiguo 20-oct-2004, 06:15   #17 (permalink)
Cizeron está en el buen camino
 
Fecha de Ingreso: noviembre-2002
Ubicación: Bilbao
Mensajes: 111
Enviar un mensaje por MSN a Cizeron
Despues de tantos cambios en el codigo... ¿como queda al final?

Gracias.
Cizeron está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 06:43.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93