![]() |
Rollover y sonidos Hola tod@s. Hace unos días pregunté cómo podía crear sonidos en los links. Ahora es más complicado: Quiero que reproduzca sonido distintos al pasar el ratón (onmouseover) y al hacer clic (onclick) pero esto quiero aplicárselo al rollover. Supongo que entra en conflicto en algún momento por lo que no sé que orden ni que nomenclatura debo de seguir. La orden sobre una imagen sería algo así como: OnMouseOver=muestra la imagen de sustitución (img2) y reproduce un sonido (sonid.1) OnMouseOver=muestra la imagen original (img1) OnClick=reproduce otro sonido (sonid.2) Sé hacer ambas cosas por separado, pero no a la vez, ni en la misma página ni mucho menos en el mismo link. ¿alguien me podría ayudar? Si conocéis alguna web así (que no sea en flash, sólo html o dhtml), por favor, dadme la dirección para así poder fijarme (código abierto, claro) Muchas gracias de ante mano. |
Buenas Fero :-) para llamar a más de una función en el mismo evento basta con que las separes con un ; (punto y coma) onMouseOver="MM_swapImg(argumentos);sonido('pepe.w av')" :arriba: |
Espero y te sirva, aunque solo quieres hacer las cosas al mismo tiempo... Ya provaste un Script que invoque ambas funciones??? http://www.htmlweb.net/manual/sonido/sonido_1.html Nachzeher |
Hola de nuevo. Me da vergüenza ya decirlo pero es que no me funciona: Creo el rollover desde Dreamweaver y después insterto la orden del sonido. Este sería el código de mi página: <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript" type="text/JavaScript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> </head> <body onLoad="MM_preloadImages('azul.gif')"> <p><a href="nada.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','azul.gif',1 )"><img src="negro.gif" name="Image1" width="30" height="30" border="0"></a> </body> </html> ....y la única forma que tengo de insertar el sonido es usando: <a href="sonido.htm" onMouseOver="document.all.sound.src='sonido1.wav' onClick="document.all.sound.src='sonido2.wav'" target="_blank">sonido</a></p> Creo que ambas órdenes son incompatibles, no me deja hacer : onMouseOut="MM_swapImgRestore();(document.all.soun d.src='sonido1')" ni después incluir OnClick. O me da error o no reproduce nada. Mil gracias por la paciencia y perdón por la molestia. |
:-) Hola, prueba así: <a href="nada.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','azul.gif',1 );document.all.sound.src='sonido1.wav"><img src="negro.gif" name="Image1" width="30" height="30" border="0"></a> :arriba: |
Hola Tunai: Qué va, no funciona tampoco así. Intentaré crear el javascript del rollover "a mano" y otro para la precarga. En el primero intentaré incluir las dos acciones, que muestre la imagen y que reproduzca el sonido y a ver qué tal me sale. Incluso a lo mejor me atrevo con un rollover múltiple. De todas formas si lo consigo lo publicaré en el foro. Muchas gracias por tu tiempo. :arriba: |
Aish, acabo de darme cuenta de que omití una comilla simple te daba error de constante de cadena sin terminar ¿no? Antes de liarte más, haz este último intento: <a href="nada.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','azul.gif',1 );document.all.sound.src='sonido1.wav'"><img src="negro.gif" name="Image1" width="30" height="30" border="0"></a> me dejé entre wav y " una '. Añadela :arriba: |
Sí, me di cuenta de qeu no había simetría y la incluí pero aún así tampoco funciona. Creo que el problema va a estar en el código de cabecera. No digo que esté mal, sólo que no lo haga compatible con el elemento que yo le incluyo y dé error. Lo cierto es que no sé interpretarlo bien y no sé lo que modificar. Por eso lo de intentarlo fabricando el script, no creo que sea difícil, supongo que habría que crear el que pre-carga las imágenes y después relacional el evento OnMouseOver con las dos acciones, además incluirle el evento OnClick. ¿Se te ocurre cómo hacerlo bien? intentaré hacerlo siguiendo un manual. Ya os contaré. Gracias :-) |
:-) Hola de nuevo, Fero Bueno, lo de la precarga de imágenes puedes usar la función que trae dreamweaver. Para precarga de sonidos, ni p idea (no es lo mio esto del audio) Efectivamente hacer una función para rollover es sencillo. Mira, hice algo simple, el tema es que no furula en Netscape. Bueno, quizás furule con el plug-in apropiado, pero no es bueno depender de que la gente se descargue plug-ins (salvo excepciones) Dejé un ejemplo colgado, a ver si te sirve aunque sea de orientación. Yá me dirás algo Saludos |
Hola Tunair :-) Genial!! esto es lo que andaba buscando. Aún así voy a tocarlo porque quiero incluir varios rollovers distintos, aunque los sonidos 1 y 2 serán los mismos siempre. No sé si sería necesario precargar las imágenes y los sonidos, en ese caso lo pondré fuera de este script. ¡¡¡Muchísimas gracias!!! Nos vemos por el foro. Salu2 :arriba: |
Hola Tunait: Me vuelvo a encontrar con un problema con mi web, esa de los sonidos y los rollovers. Bien, inserté el código que me diste, cambié los parámetros necesarios y funciona perfectamente. Ahora el problema está en que quiero que esos links al abrirse sean ventanas popUp o mejor, cromelless... Sé como abrir esas ventanas, el problema es que con ese código algo se hace incompatible. Supongo que el el navegador no sabe exactamente a qué codigo javascript está llamando y por eso no abre el popUp aunque los sonidos y los rollovers van perfectamente. Por favor, a ver si me puedes ayudar. Muchas gracias. |
:-) Hola Fero, dejame aquí el código que estás usando para llamar a las popups :arriba: |
Este es el código: <SCRIPT LANGUAGE="JavaScript"> <!-- Begin function popUp(URL) { day = new Date(); id = day.getTime(); eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=yes,location=0,statusbar=0,m enubar=0,resizable=0,width=550,height=419');"); } // End --> </script> Después el enlace lo llamo <a href="javascript:popUp('ventanita.htm') Gracias. :arriba: |
|
Síííííííí!!!! :-D funciona, me he hecho un poco de lío cambiando cosas pero funciona de maravilla. Muchísimas gracias, serás la primera en ver mi web. Para lo que necesites, mil gracias :arriba: |
jejeje ole! Así seré la primera? que ilu :-D (me lo puedes dar por escrito y firmado??) :borracho: Un saludo, Fero |
| La zona horaria es GMT -6. Ahora son las 19:50. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.