il preload javascript che ho nella mia pagina index funziona benissimo, l'unico problema è che ciascuna immagine da caricare deve essere specificata con url assoluto dentro l'array relativo :
codice:
var pics = new Array("immagini/immagine1.jpg","immagini/immagine2.png","immagini/immagineN.jpg");
var imgObjs = new Array(pics.length);
var loaded = 0;
var total = pics.length;
var cPercent = 0;
finche le immagini non superano la trentina si può anche sopportare, ma oltre diventa un vero dramma, anche e sopratutto in caso di modifiche ai nomi delle immagini/posizione...
vorrei poter specificare l'indirizzo della cartella/cartelle (contenente solo immagini) e che sia lo script a vedere quante ve ne sono all'interno e a caricarle
cercando nel forum ho trovato la seguente soluzione suggerita da Xinod di utilizzare un piccolo script php dentro java che si occupa di effetuare l'operazione sopra descritta e popolare l'array :
codice:
<script language="JavaScript" type="text/JavaScript">
// Specify the image files
var Pic = new Array() // don't touch this
// to add more images, just continue
// the pattern, adding to the array below
<?
$absolute_path = "images";
$dir = opendir($absolute_path);
$f=array();
while($file = readdir($dir))
if (($file != "..") and ($file != "."))
$f[]=$file;
unset($file,$dir);
sort($f);
$i = 0;
foreach($f as $file)
echo "Pic[$i] = '$file'\n";
$i++;
?>
var p = Pic.length
var preLoad = new Array()
for (i = 0; i < p; i++){
preLoad[i] = new Image()
preLoad[i].src = Pic[i]
}
</script>
quindi teoricamente mi basterebbe incollare quel codice php in posizione, però non sono sicuro possa addattarsi al mio caso, i miei dubbi sono i seguenti :
il codice del mio preload si trova in un file preload.js che viene caricato con link nell'head della pagina index, un codice php per essere eseguito ha bisogno che la pagina sia nominata con l'estensione .php quindi se caricato da un file .js non funzionerebbe...o mi sbaglio?
inoltre il codice di cui sopra fà riferimento a una sola cartella, come si può fare nel caso volessi aggiungere più cartelle/sottocartelle?