Foros del Web » Programando para Internet » Javascript »

Ejecutar funcion despues de 2 segundos [OnMouseOver]

Estas en el tema de Ejecutar funcion despues de 2 segundos [OnMouseOver] en el foro de Javascript en Foros del Web. Hola, tengo un proyecto de mi escuela , y la funcion que tengo que hacer es la siguiente: Que al dejar el puntero encima de ...
  #1 (permalink)  
Antiguo 28/09/2009, 14:23
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 2 meses
Puntos: 4
Ejecutar funcion despues de 2 segundos [OnMouseOver]

Hola, tengo un proyecto de mi escuela , y la funcion que tengo que hacer es la siguiente:


Que al dejar el puntero encima de un elemento, por decir, una tabla, que despues de 2 segundos de que el puntero se quede en el elemento, que se reproduzca un sonido mp3, y que si se quita el puntero antes de los 2 segundos, que no pase nada, un saludo y gracias por su atencion.



Ha! y si son tan amables, que la funcion se agregue en el elemento asi:

OnMouseOver="sonar(archivo.mp3)"

para que pueda elegir varios archivos mp3 de cada tabla diferente, gracias...
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #2 (permalink)  
Antiguo 28/09/2009, 14:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

Hola

Necesitas usar temporizadores.
Con onmouseover -----> settimeout
Con onmouseout ------> cleantimeout

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 28/09/2009, 14:53
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

Bueno, me faltó poner que no se casi nada de JavaScript :S
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #4 (permalink)  
Antiguo 28/09/2009, 15:45
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

¡vamos, que deberias intentar algo por ti mismo(a), despues de todo es para ti! Adler ya te dio una pista de las funciones y eventos que necesitas. basicamente es guardar en una variable la referencia devuelta por setTimeout y en este vas a llamar la funcion de reproducir sonido. con clearTimeout detienes el retardo pasando la referencia guardada en la variable. para reproducir sonidos, hechale un vistazo a la FAQ y a varios temas recientes, sonidos en javascript, sonido en los enlaces, musica en la web
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 28/09/2009 a las 15:53
  #5 (permalink)  
Antiguo 28/09/2009, 16:07
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

Cita:
Iniciado por zerokilled Ver Mensaje
¡vamos, que deberias intentar algo por ti mismo(a), despues de todo es para ti! Adler ya te dio una pista de las funciones y eventos que necesitas. basicamente es guardar en una variable la referencia devuelta por setTimeout y en este vas a llamar la funcion de reproducir sonido. con clearTimeout detienes el retardo pasando la referencia guardada en la variable. para reproducir sonidos, hechale un vistazo a la FAQ y a varios temas recientes, sonidos en javascript, sonido en los enlaces, musica en la web
También me faltó poner que el que no quiera responder o ayudar, que ni siquiera visite este foro, puesto que se encontrará que muchos de aqui no sabemos y que para eso estamos, por que no se nace sabiendo...

De verdad amigos, si les molesta responder, que demonios hacen leyendo foro tras foro?
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #6 (permalink)  
Antiguo 28/09/2009, 16:20
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

¿sabes lo que es un pseudocodigo? por si las dudas, wikipedia.
Código:
evento_raton_sobre := "
variable ref := temporizador(funcion_sonido(ruta), lapso_tiempo)
"

evento_raton_salir := "
borrar_temporizador(variable ref);
"

funcion sonido(ruta){
// aqui va las instrucciones que quieras implementar segun
// la alternativa de los enlaces anterior
...
}
por cierto, tu comentario no te ayudara, pero bueno, cada cual con lo que quiera... suerte.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 28/09/2009, 16:34
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

Como sea, pongo el codigo para los que buscaban algo similar:

Cita:
ENTRE ETIQUETAS <HEAD> Y </HEAD>
<script language="JavaScript1.4" type="text/javascript">
<!--
function jsPlay(soundobj) {
var thissound= eval("document."+soundobj);
try {
thissound.Play();
}
catch (e) {
thissound.DoPlay();
}
}

function jsStop(soundobj) {
var thissound= eval("document."+soundobj);
try {
thissound.Stop();
}
catch (e) {
thissound.DoStop();
}
}

function tesperas(nsegundos) {
objetivo = (new Date()).getTime() + 1000 * Math.abs(nsegundos);
while ( (new Date()).getTime() < objetivo );
};


//-->
</script>


ENTRE ETIQUETAS <BODY> Y </BODY>


<a onMouseOut="jsStop('nav1sound')" onMouseOver="tesperas(2);jsPlay('nav1sound')" href="#">PON EL PUNTERO AQUI PARA ESCUCHAR EL SONIDO, DE IGUAL MANERA, QUITALO PARA CALLAR EL SONIDO</a>
<embed name="nav1sound" src="URL/DE/TU/SONIDO.MP3" TYPE="application/x-mplayer2" autostart="false" mastersound hidden="true" volume=100 width=0 height=0>
</embed>
Lo de rosa es la funcion que hace que la siguiente funcion se retrase, "tesperas(AQUI NUMEROS PARA SEGUNDOS);", fin y gracias a mi solito XD
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.

Última edición por kuriel; 28/09/2009 a las 17:11
  #8 (permalink)  
Antiguo 28/09/2009, 17:15
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

practicamente lo tienes, es cuestion de llamar la funcion jsPlay con setTimout en el evento onmouseover. en el evento onmouseout tienes que llamar clearTimeout para detener el tiempo si el raton sale antes de la reproduccion, seguido llamas la funcion jsStop. si miras el pseudocodigo, obtendras la respuesta.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 28/09/2009, 17:40
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

hmmm... de hecho ya esta bien, con el retrazo que tiene....
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
  #10 (permalink)  
Antiguo 29/09/2009, 01:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

Cita:
Iniciado por kuriel Ver Mensaje
hmmm... de hecho ya esta bien, con el retrazo que tiene....
Hola:

No quise participar antes porque había buenas respuestas de dos de los mejores colaboradores de este foro

Creo que tanto Adler como zerokilled te han orientado muy bien... al menos yo soy de la idea de no dar código "personalizado", sino orientar para que quien plantea el problema lo pueda resolver (es mi opinión)...

Ahora, mi participación es para seguir orientándote. ¡Verás!, tu solución puede funcionar, pero lleva un gasto de recursos innecesario. Sin dudas, la mejor solución te la han dado desde el principio: usar un temporizador, y lo más dificil ya lo tienes... ahora, tengo mis serias dudas de la efectividad de ese temporizador, ya que la respuestas de los medios no suelen ser inmediatas... Has probado la respuesta en algún servidor (no me refiero a localhost)

Saludos

Edito: Por cierto, había empezado un artículo sobre temporizadores que pienso que podría ayudarte.
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 29/09/2009 a las 02:18 Razón: ampliar info
  #11 (permalink)  
Antiguo 29/09/2009, 15:21
Avatar de kuriel  
Fecha de Ingreso: febrero-2009
Mensajes: 240
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Ejecutar funcion despues de 2 segundos [OnMouseOver]

El codigo lo saqué de "webpage maker", queria que me ayudaran, no que me dieran el codigo hecho, pero decir que necesito "setTimeout" o "clearTimeout" fue para nada...
__________________
Si todas las URL's que tienes o visitas te parecen largas, visita www.korto.tk - También protege de rastros y con contraseñas tus páginas o URL's.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:41.