ok per actionscript, ma il resto dovrebbe essere comprensibile in italiano...
comunque visto che hai difficoltà con ActionScript, direi che per te è meglio seguire la strada più semplice, anche se più dispendiosa a livello di tempo e risorse
un'azione base sarebbe quella del rollover, da mettere separatamente in ogni pulsante
quindi ad esempio, per il pulsante "Barcellona" (nome di istanza del pulsante, inseribile dal pannello delle proprietà, una volta selezionato il pulsante) avremo una situazione del genere
on(rollOver) {
this.gotoAndPlay(2);
Milano.gotoAndStop(1);
Parigi.gotoAndStop(1);
Londra.gotoAndStop(1);
Roma.gotoAndStop(1);
Francoforte.gotoAndStop(1);
// ecc...
}
un paio (3) di punti su questa situazione
1. i pulsanti in realtà devono essere tutti MovieClip e non Button, è importante se si vuole utilizzare il "this" per il gotoAndPlay()
2. ogni movieclip deve essere costituito dal un primo frame stoppato, in cui deve essere visibile solo il pulsante, senza la tratta... mentre dal frame 2 deve partire l'animazione fino all'ultimo frame, quest'ultimo deve essere un altro keyframe stoppato
3. ogni pulsante/movieclip deve contenere lo stesso codice, modificato per il clip a cui si riferisce (quindi se ho il pulsante Francoforte, dovrò eliminare la riga Francoforte.gotoAndStop(1); e così via per gli altri
in questo modo semplifichi i passaggi, utilizzi una situazione ripetitiva, ma almeno sei sicuro di quello che stai facendo... l'alternativa sarebbe di complicare un attimo la situazione con Actionscript, snellendo la struttura grazie ad un array e ad un ciclo for e scrivendo il codice una sola volta sulla timeline principale, invece di scriverla in ogni clip
provo comunque a commentare il codice che ho scritto in precedenza, così qualsiasi strada deciderai di percorrere, avrai una scelta in più da considerare
Codice PHP:
// creo un array che mi contiene tutti i nomi dei pulsanti utilizzati, sotto forma di stringhe
var lista = ["Londra", "Parigi", "Roma", "Francoforte", "Barcellona"];
// creo una funzione che riporta tutti i clip al frame 1, escluso l'ultimo in cui è stato fatto il rollover
// la funzione ha due parametri, uno che indica dove andare a cercare i clip
// e l'altro che dice quale clip non rimandare al primo frame (sotto forma di stringa)
var resetAll = function(root, esclude){
// attivo un ciclo che ha come base l'array "lista", in cui ho inserito i nomi dei pulsanti
for(var j = 0; j < lista.length; j++){
// se il nome attualmente verificato nell'array è diverso da quello indicato come parametro
if(lista[j] != esclude) {
// allora mando tutti i clip (escluso quello del ciclo) al frame 1
// utilizzando un metodo di accesso agli elementi presenti in un determinato clip
// con una sintassi pari a quella di accesso agli elementi di un array
// per ulteriori informazioni riguardo a questa tecnica, puoi consultare questo link
// [url]http://livedocs.adobe.com/flash/8_it/main/00001798.html[/url]
// quello che ti interessa è l'Uso 3
root[lista[j]].gotoAndStop(1);
}
}
}
// attivo un ciclo che ha come base l'array "lista" in cui ho inserito i nomi dei pulsanti
for(var i = 0; i < lista.length; i++){
// per ogni clip presente nella lista, richiamo il rollover in forma assegnata con la sintassi del punto
// in questo modo posso richiamare la funzione senza necessità di metterla in ogni clip presente
this[lista[i]].onRollOver = function(){
// dentro alla funzione/evento onRollOver, è come se mi trovassi all'interno del clip a cui fa riferimento
// quindi quando l'assegnazione viene fatta ad esempio su "Barcellona", il this si riferirà al clip "Barcellona"
// mando quindi il clip in cui faccio il rollover, al frame 2 per eseguire l'animazione
this.gotoAndPlay(2);
// richiamo la funzione "resetAll" inizializzata in precedenza
// e gli assegno i due parametri
// this._parent è un riferimento al clip contenitore di this (es. "Barcellona") e potrebbe essere ad esempio _root
// this._name è un riferimento al nome del clip (sotto forma di stringa)
// e ci consente di escludere tale clip dalla lista di quelli che devono tornare al frame 1
resetAll(this._parent, this._name);
}
}
è tutto, spero che risulti più chiaro e sfruttabile