Originariamente inviato da bubu77
come da titolo ho un ciclo che crea dei clip dinamici contenenti delle foto
come faccio a renderli cliccabili?
non puoi farlo direttamente...devi creare un clip interno allo stesso creato dinamicamente, riferire il loadmovie a quello e poi scrivere il codice per rendere il clip cliccabile...in codice
codice:
// creo un array con il solo nome delle foto
var foto:Array = new Array("foto1.jpg", "foto2.jpg", "foto3.jpg", "foto4.jpg", "foto5.jpg", "foto6.jpg");
creo il ciclo in base all'array
for(var i:Number = 0; i< foto.length; i++){
// creo i clip dinamicamente con createEcc...
_root.createEmptyMovieClip("vuoto"+i, i+1);
//
// qui inserisco il codice per posizionare i clip
//
//
// creo un clip dentro quelli già creati che faccia da contenitore per l'immagine
// faccio così perchè altrimenti, se carico nel clip "vuoto"+i annullo tutte le azioni
// che darei dopo (compreso l'onRelease)
_root["vuoto"+i].createEmptyMovieClip("dentro", 1);
// carico la thumb dentro ogni clip
_root["vuoto"+i].dentro.loadMovie("thumbs/"+foto[i]);
// assegno una variabile diretta ad ogni clip
// lo faccio perchè altrimenti quando entro nel metodo onRelease
// l'indice del ciclo non viene riconosciuto e restituisce sempre
// solo l'ultimo valore dell'indice "i"
_root["vuoto"+i].i = i;
// finalmente all'onRelease, che contiene tutte le azioni
// che si attivano quando il clip viene cliccato
// in questo caso non faccio altro che caricare l'ipotetica immagine "grande"
// che ha lo stesso nome della thumb ma cartella diversa
_root["vuoto"+i].onRelease = function(){
_root.grande.loadMovie("img/"+foto[this.i]);
}
}