Publicidad con Javascrip

Doraimom
23 de Septiembre del 2003
Me gustaria poner en mi pagina como un gif animado que vaya mostrando mis trabajos, pero que al pulsar en cada fotograma, vaya directamente al trabajo que proceda. Alguien sabe como puede hacerse. Gracias

Juan
23 de Septiembre del 2003
No se puede hacer con un gif animado, ya que de esa manera
no hay forma de saber en que fotograma se encuentra
la animación. Lo que tienes que hacer es guardar los
fotogramas en archivos separados (pueden ser GIF, pero
no animados) y hacer una secuencia con dichas imágenes.
Te pongo un ejemplo con 3 imágenes:

<html>
<head>
<script language="javascript">
var imagen;
imagen = new Array(2);
imagen[0] = new Image();
imagen[0].src = "URL1.gif";
imagen[1] = new Image();
imagen[1].src = "URL2.gif";
imagen[2] = new Image();
imagen[2].src = "URL3.gif";
var indiceImagen = 0, numImagenes = 3;
var intervalo, retardo = 1000;
function cambiaImagen(){
indiceImagen = (indiceImagen < numImagenes - 1)?indiceImagen+1:0;
visor.src = imagen[indiceImagen].src;
}
function clickFotograma(){
switch(indiceImagen){
case 0:
alert("se ha echo click en el 1º fotograma");
break;
case 1:
alert("se ha echo click en el 2º fotograma");
break;
case 2:
alert("se ha echo click en el 3º fotograma");
break;
}
}
</script>
</head>
<body onload="intervalo=window.setInterval('cambiaImagen()',retardo);" onunload="window.clearInterval(intervalo);">
<img id="visor" src="prba.jpg" onclick="clickFotograma();">
</body>
</html>

Lógicamente tienes que cambiar las URLs de las imágenes,
si pones más de tres imágenes también tendrás que
cambiar la sentencia
numImagenes = 3; por numImagenes = X;
y la sentencia
imagen = new Array(2);
por
imagen = new Array(X-1);

Siendo X el nº de imágenes qu vas a poner.

También debes cambiar el valor de la variable retardo
para adecuar la velocidad a la que cambian las imágenes.