Veamos, si en lugar de capas tomas las rutas de las imágenes en variables puedes tener la imagen tal q así:
Código HTML:
<img src="imagenes/libre0.png" id="imagen">
Voy a dejar como supuesto q la ruta q tiene el src es la de la imagen x defecto.
Luego la llamada a los cambios según el tiempo serían prácticamente iguales solo q les pasas como argumento la ruta de la imagen. Si quieres q la función sirva para otras imágenes también podrías pasar como argumento el id q le has puesto.
Código HTML:
setTimeout ("mostrar ('imagen',rutaimagen1)", 0);
setTimeout ("mostrar ('imagen',rutaimagen2)", 1000);
setTimeout ("mostrar ('imagen',rutaimagen3)", 2000);
setTimeout ("mostrar ('imagen',rutaimagen4)", 3000);
Las variables "rutaimagenx" son en las q deberías definir la ruta hasta la imagen q quieres mostrar.
Eso x si quieres usar la función para imagenes diferentes a variar dentro de una misma página. Luego la función mostrar quedaría así:
Código HTML:
function mostrar(idImagen,ruta){
document.getElementById(idImagen).src=ruta;
}
Espero q entiendas lo q kiero decir. Seguro q hay soluciones más simples pero vamos, esto es una idea para q no tengas q cargar las imágenes previamente en X capas para mostrar y ocultar... Lo q pasa q también por el método q he expuesto puede okurrir q la imagen cuando haga el cambio tarde un poko en hacerlo.
Sobre tu función mostrar también falta q okulte la q anteriormente mostraba para q haga el efecto q parece q deseas...
Saludos.