La logica che guida il mio esempio è questo:
Il movieclip "barra" contiene le foto (in questo caso 4)
le foto sono tutte della stessa dimensione, affiancate l'una all'atra a destra.
La prima foto è posizionata a coordinata x = 0 (ovviamente relativamente al clip barra)
Di conseguenza la seconda foto avrà coordinata x = 0 + larghezza prima foto.
Nel mio esempio la visualizzazione è guidata da 4 pulsanti (uno x foto).
Ogni pulsante imposta il proprio valore nella variabile "foto" del clip "barra".
IMPORTANTE: la numerazione delle foto parte da 0 (zero)
per questo il primo pulsante, che controlla la prima foto, all'evento "rollOver" imposta barra.foto = 0
il secondo pulsante, che controlla la seconda foto, all'evento "release" imposta barra.foto = 1
e così via
La funzione impostata sull'evento "enterFrame" del clip barra non fa altro che calcolare, in base al valore della variabile foto, la coordinata x alla quale posizionare il clip, con la seguente formula:
arrivo_x = base_x - intervallo * foto;
(dove intervallo è stato precedentemente impostato = larghezza foto)
Quindi, per avere uno slide-show del tipo "avanti.indietro" o "precedente/seguente", basterà sostituire i 4 pulsanti con due soli (per l'appunto: precedente e seguente) al quale applicare un codice che incrementa la variabile "foto" per il pulsante seguente e uno che lo decrementa per il pulsante precedente.
Naturalmente occorrerà anche controllare il raggiungimento della fine-slide (sia in un senso che nell'altro)
Quando si raggiunge la fine (in entrambe i sensi) NON si incrementa/decrementa più il valore (così lo slide si blocca) oppure si imposta a zero se si va in avanti, o al valore massimo se si va indietro creando così uno slide senza fine.
Per cui, (esempio di slide-show "senza fine" con 4 foto)
sul pulsante AVANTI o SEGUENTE:
codice:
on (rollover) {
barra.foto ++; // incremento il numero foto
if (barra.foto >= 4) {
barra.foto = 0; // NUMERO 1^ FOTO
}
}
sul pulsante INDIETRO o PRECEDENTE:
codice:
on (rollover) {
barra.foto --; // incremento il numero foto
if (barra.foto < 0) {
barra.foto = 3; // NUMERO ULTIMA FOTO
}
}