Foros del Web » Programando para Internet » Javascript »

Animación (secuencia de imagenes)

Estas en el tema de Animación (secuencia de imagenes) en el foro de Javascript en Foros del Web. Hola amigos, Quiero hacer una animación sencilla con una imagenes de radar, en principio no tiene que suponer un problema...aunque no sé hacerlo jeje Independientemente ...
  #1 (permalink)  
Antiguo 27/11/2012, 13:39
 
Fecha de Ingreso: junio-2012
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
Animación (secuencia de imagenes)

Hola amigos,

Quiero hacer una animación sencilla con una imagenes de radar, en principio no tiene que suponer un problema...aunque no sé hacerlo jeje

Independientemente de esto hay un problema que es aun más complicado y que me preocupa realmente, la imagenes de radar por lo general van asociadas a una fecha y hora. Ejemplo:

http://www.aemet.es/imagenes_d/eltiempo/observacion/radar/201211271830_r8pb.gif

Estas imagenes en principio no se sabe cuando salen exactamente pq hay veces q no salen o simplemente salen tarde.
Claro, si yo estoy en mi html con el loop hecho con javascript, como sé yo hasta que imagen tengo que hacer el loop? o dicho de otra manera, Cómo hago un condicional para decirle si la imagen de las 8 no la encuentras quedate con la de las 7 que si que existe?
En cuanto a numeros si que me parece facil, pero como sabe el programa que esa imagen aun no se ha cargado o no existe?

Realmente, tengo dos preguntas: Cómo hacer un loop? Cómo solucionar el problema de la imagen que aun no existe ?
  #2 (permalink)  
Antiguo 27/11/2012, 17:03
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Animación (secuencia de imagenes)

Por lo que veo el nombre de la imagen lleva la fecha y hora, si esto es así y la imagen puede ser tomada en un tiempo indeterminado, creo que tu problema es insoluble.
Supongamos la siguiente situación
las fotos son tomadas a intervalos regulares de tiempo, digamos, 10 minutos (pongo solo la hora para simplificar)

1900.gif
1910.gif
1920.gif
1930.gif

vos podrías hacer que si determinada imagen no existe aparezca un texto alternativo, pero los nombres los conocés, ahora si decís tambien

Cita:
no se sabe cuando salen exactamente pq hay veces q no salen o simplemente salen tarde
podría ser

1903.gif
1916.gif
1920.gif
1935.gif

Ahi está el problema mayor, los nombres es imposible saberlos, por lo tanto ni siquiera podés saber si existe o no un archivo determinado.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 27/11/2012, 18:21
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: Animación (secuencia de imagenes)

emprear: ¡Esta vez miré de nuevo antes de postear!

Pero aunque vi tu mensaje, posteo igual lo que tengo, que no es mucho.



Rolomo: ¿Tiene que ser JS?. Porque en tu servidor deben saber si creaste la imagen o no. Quizá hasta se pueda actualizar con AJAX.

No adivinamos cómo es tu animación, pero si no queda otra que revisar con javascript, probá algo con onload o quizá onerror dentro de la etiqueta de imagen donde cambiás los src='' secuenciados.

Porque es cierto que si no sabés los nombres, ya se vuelve imposible llamarlas desde un JS.
  #4 (permalink)  
Antiguo 27/11/2012, 19:00
 
Fecha de Ingreso: junio-2012
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Animación (secuencia de imagenes)

Vale, me vuelvo a explicar. Yo conzco de antemano como será el url y la hora que sale, pero no se a la hora que sale realmente. Sé que las horas del url serán fijas 0,1,2,3,....

case "radar":
if(j<0) {j=0}
if(j>24) {j=24}
arxiu="http://www.pepito.com/hora_"+j+".png";
break;

Aún no sé hacer la animación...acepto ideas. Mi idea de lo que quiero conseguir es....
Ejemplo:
Hacer un loop con esas imagenes de j=0, hasta la última imagen existente. Yo no sé si la imagen con j=n ha salido o no, en el caso de que no haya salido quiero que coja como mucho hasta la n-1, y así hasta que la imagen salga....
Mmm en principio había pensado en hacerlo con javascript o jquery, pero si me propones otra manera....

Un abrazo.
  #5 (permalink)  
Antiguo 27/11/2012, 20:06
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Animación (secuencia de imagenes)

Seguimos en la misma. esto como se entiende
Cita:
Yo conzco de antemano como será el url y la hora que sale, pero no se a la hora que sale realmente
vos lo que necesitás son los nombres de los archivos, a no ser que me digas que efectivamente los nombres sean,
1830
1900
1930
2000
2030

pero puede que salgan en estas horas
1835
1920
1945
2002
2038

por otro lado, con que frecuencia salen las imágenes, 1 minuto, 10, 20, etc

Bueno, muchas dudas, de todas formas te dejo esto como tentativa
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. var ImagenPrueba = new Image();
  10. var fondos = ['castilla.png', 'castilla.jpg', 'castilla.gif'];
  11. var fondo_actual = 0;
  12.  
  13. var CambiarFondo = function(){
  14. if (fondo_actual == fondos.length) {
  15. fondo_actual = 0;
  16. }
  17. var precargar =fondo_actual++;
  18.  
  19. ImagenPrueba.src = fondos[precargar];
  20. ImagenPrueba.onload = function(){
  21. document.getElementById('capa').style.backgroundImage = "url("+this.src+")";
  22. document.getElementById('capa').innerHTML = "";
  23. }
  24. ImagenPrueba.onerror = function(){
  25. document.getElementById('capa').style.backgroundImage = "none";
  26. document.getElementById('capa').innerHTML = "Imagen "+ fondos[precargar] + "  no disponible";
  27. }
  28.  
  29. }
  30.  
  31. window.setInterval(CambiarFondo, 5000);
  32. //]]>
  33. </head>
  34. <div style="width: 134px;height:124px;" id="capa">
  35.     Próxima toma en 5 segundos
  36. </div>
  37. </body>
  38. </html>


Para la demo, de las tres imágenes en el array hacé que solo una exista., se pueden hacer variantes.
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 27/11/2012, 22:51
 
Fecha de Ingreso: junio-2012
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Animación (secuencia de imagenes)

Yo conzco de antemano como será el url y la hora que está impresa en el URL, pero no se a la hora que se publica la imagen.
Es como tu primera opción.
Probaré eso.
Ejemplo:
Yo sé de antemano como se llamaran los URL pq la fecha es algo previsible.
Esta imagen que es de la madrugada si la buscas aparece, es una imagen que existe.
http://www.aemet.es/imagenes_d/eltiempo/observacion/radar/201211272330_r8pb.gif
Esta otro de momento no existe porque aun le faltan dos dias para que se cree, pero yo sé que se llamará así:
http://www.aemet.es/imagenes_d/eltiempo/observacion/radar/201211292330_r8pb.gif

Si por casualidad la añadiera en el loop ahora, yo quiero que mi programa se vaya quedando con las anteriores hasta que encuentre una que si que exista...

Pruebo tu programa. Muchas gracias.

Etiquetas: html, secuencia
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 22:10.