Foros del Web » Programando para Internet » Javascript »

Uso de setTimeout

Estas en el tema de Uso de setTimeout en el foro de Javascript en Foros del Web. Bueno señores estoy haciendo una prueba para ver si aprendo a usar esta función, veamos: A continuación tengo un código que me muestra aleatoriamente una ...
  #1 (permalink)  
Antiguo 19/01/2005, 19:43
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Uso de setTimeout

Bueno señores estoy haciendo una prueba para ver si aprendo a usar esta función, veamos:

A continuación tengo un código que me muestra aleatoriamente una de 4 imágenes llamadas cuadro_1.gif, cuadro_2.gif, cuadro_3.gif y cuadro_4.gif

____________________________

function mostrar_imagen()
{
var valor=(numero=parseInt(Math.random(1)*4)+1);

document.write ('<img src="cuadro_'+valor+'.gif" width="50" height="50">');

}

mostrar_imagen()
_______________________________

Muy bien, con lo anterior me muestra aleatoriamente una de las cuatro imágenes, ahora quiero que cada 10 segundo se vuelva a ejecutar la función para que me pueda mostrar otra imagen aleatoria, para esto hago lo siguiente:

________________________________________

function mostrar_imagen()
{
var valor=(numero=parseInt(Math.random(1)*4)+1);
document.write ('<img src="cuadro_'+valor+'.gif" width="50" height="50">');

}
setTimeout(mostrar_imagen(),10000);
_______________________________________

Sin embargo me sigue mostrando la misma, como que no vuelve a llamar a la
función una vez transcurrido el tiempo,

Alguien podria darme una ayudadita?

Agradeceré infintamente cualquier ayuda.

Saludos y grácias.
  #2 (permalink)  
Antiguo 20/01/2005, 01:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola Elalux:

El primer parámetro de setTimeout y setInterval debe ser una cadena...

setTimeout("mostrar_imagen()",10000);

Con esto se haría 1 vez, pero si quieres que se siga haciendo sería mejor usar setInterval...

setInterval("mostrar_imagen()",10000);

o la otra forma sería tener el setTimeout dentro de la misma función "mostrar_imagen()":

function mostrar_imagen()
{
var valor=(numero=parseInt(Math.random(1)*4)+1);
document.write ('<img src="cuadro_'+valor+'.gif" width="50" height="50">');
setTimeout("mostrar_imagen()",10000);
}

Por otro lado, si quieres que deje de funcionar está clearInterval() y clearTimeout()...

Para otra ocasión

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 20/01/2005, 08:41
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 22 años, 11 meses
Puntos: 25
Hola.

Aqui te dejo una pequeña modificación.

esto en el head:
Código:
function mostrar_imagen()
{
var valor=(numero=parseInt(Math.random(1)*4)+1);
document.getElementById('fotico').src="cuadro_"+valor+".gif";
setTimeout("mostrar_imagen()",10000);
}
y esto en el body
Código:
<img id="fotico" width="50" height="50">
Un saludo.
  #4 (permalink)  
Antiguo 20/01/2005, 09:52
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Muchas gràcias Carcatos y Carlitos por su ayuda, ya mas o menos le ando agarrando la idea a esto sin embaro he aqui lo que sucedió:

Primeramente probé con el consejo de Caricatos utilizando setInterval fura de la funciòn:
__________________________________________________ ____
<script language=javascript>
function mostrar_imagen()
{
var valor=(numero=parseInt(Math.random(1)*4)+1);
document.write ('<img src="cuadro_'+valor+'.gif" width="50" height="50">');
}
setInterval("mostrar_imagen()",5000);
</script>
__________________________________________________ _
Y sucediò que en este caso no apareció nada, nisiquiera la primera imagen :(, luego probé poniendo setTimeout dentro de la funciòn:



__________________________________________________ __
<script language=javascript>
function mostrar_imagen()
{
var valor=(numero=parseInt(Math.random(1)*4)+1);
document.write ('<img src="cuadro_'+valor+'.gif" width="50" height="50">');
setTimeout("mostrar_imagen()",5000);
}

</script>
__________________________________________________



Y sucedió lo mismo, nomostró nada. Posteriormente utilice el consejo del buen Carlitos, puse el Script y la etiqueta <img... > dentro del body


___________________________________________
<script language=javascript type=text/javascript>

function mostrar_imagen()
{
var valor=(numero=parseInt(Math.random(1)*4)+1);
document.getElementById('fotico').src="cuadro_"+va lor+".gif";
setTimeout("mostrar_imagen()",10000);
}
</script>

<img id="fotico" width="50" height="50">
__________________________________________________

Sin embargo en este caso no se muestra la imagen, como que toma literalmente "fotoico" como el nombre de la imágen y muestra el simbolo de imágen no encontrada en el navegador.

Bueno señores he aquí los resultados de los experimentos, agradeceré infinitamente si abusando de su amabilidad y paciencia me pueden seguir ayudando :)

Gracias nuevamente y Saludos a todos.

Última edición por Elalux; 20/01/2005 a las 09:53
  #5 (permalink)  
Antiguo 20/01/2005, 10:31
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 22 años, 11 meses
Puntos: 25
tienes que llamar a la función la primera vez.

por ejemplo, una vez que se cargue el body:
Código:
<body onload="mostrar_imagen()">

un saludo.

Última edición por Carlitos; 20/01/2005 a las 11:06
  #6 (permalink)  
Antiguo 20/01/2005, 12:42
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Muchas grácias amigos, al fin lo logré, aquí pongo el código por si le sirve a alguien, la imágenes se llaman cuadro_1.gif, cuadro_2.gif, cuadro_3.gif, cuadro_4.gif

---------------------------------------------------

<body onload="mostrar_imagen()">
<script language=javascript type=text/javascript>

function mostrar_imagen()
{
var valor=(numero=parseInt(Math.random(1)*4)+1);
document.getElementById('fotico').src="cuadro_"+va lor+".gif";
setTimeout("mostrar_imagen()",3000);
}

</script>

<img id="fotico" width="50" height="50">

</body>
-----------------------------------------------------------------

Ahora voy a trabajar para adaptarlo y funciones con archivos de flash (.swf), si me atoro volvere a solicitur su ayuda :)

Saludos y muchas grácias.
  #7 (permalink)  
Antiguo 20/01/2005, 12:55
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
Ahora voy a trabajar para adaptarlo y funciones con archivos de flash (.swf), si me atoro volvere a solicitur su ayuda :)

http://www.forosdelweb.com/showpost....40&postcount=4
  #8 (permalink)  
Antiguo 20/01/2005, 19:39
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
GRacias tunait, verdaderamente toda una revelación tu comentario, creo que el problema esta en la etiqueta <object....> con la que se inserta el .swf y que no se lleva muy bien con JavaScript.

En fin, quedara como como la pregunta ¿Qué fué primero, el huevo ó la gallina? ó un misterio más como El chupacabras, Big Foot o le Mounstruo de Loch Ness, todo mundo habla de ellos pero nadie los ha atrapado. jijiji

Muchas grácias y Saludos.
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 17:15.