Hola Alberto:
No sé si has copiado tu código o si lo retocaste, pero me pareció ver un par de cosas incorrectas.
no sé si tenga que ser +1 el valor de precargar2...
Para que no se vaya fuera del rango del array podrías terminar con % fondos.length...
Yo haría:
Código:
function CambiarFondo() {
precargar = fondo_actual++ % fondos.length;
precargar2 = precargar + 2 % fondos.length;
// el resto tal como lo tienes...
}
La asignación de los fondos parece estra bien.
Saludos