ho incontrato anch'io un problema del genere e ho risolto mettendo prima l'associazione degli eventi e poi l'impostazione del src. Prova a vedere se funziona.
codice:
<script type="text/javascript" language="javascript">
/*<![CDATA[*/
var immagini=new Array()
var total; // Totale immagini da preparicare
var cc=0; // Contatore Immagini già precaricate
function changePage(){
if(cc>=total){location.href= "home.asp";}
}
function preload(){
total=preload.arguments.length; // Totale immagini da preparicare
for (cont=0;cont<total;cont++)
{
immagini[cont]=new Image();
if(preload.arguments[cont]=='intro.jpg'){
immagini[cont].onload=function(){cc++;
setTimeout("setInterval('changePage()',1000)",1000);
}}
else{immagini[cont].onload=function(){cc++;}}
// Ora associo il src
immagini[cont].src=preload.arguments[cont];
}
}
function Caricate(){
preload("zona1_a.png","zona1_b.png","zona1_b2.png","zona3a.png","zona3b.png","zona2_a.png","zona2_b.png","zona2_c.png","intro.jpg");
}
window.onload=Caricate
/*]]>*/
</script>