allora, proviamo a definire una funzione che serva allo scopo...
Preparazione:
I vari movieclip da "aprire/chiudere" devono avere un nome progressivo, p. es:
clip1, clip2, clip3, clip4 e clip5
Poi rendiamo "speculari" le due animazioni di apertura e chiusura, per cui:
dal frame 1 al frame 10 -> apertura
dal frame 11 al frame 20 -> chiusura
I pulsanti che li controllano io li metterei "dentro" detti movieclip, altrimenti puoi metterli anche fuori ma, in questo caso, devi attribuirgli un nome istanza con le stesse caratteristiche, per cui:
puls1, puls2, puls3, puls4 e puls5
queste le istruzioni da associare ai pulsanti:
codice:
on (rollOver) {
apri_chiudi(_name);
}
on (rollOut) {
// nulla
}
e veniamo al "cuore" del problema: l'apertura/chiusura "sincronizzata".
queste istruzioni devi metterle nel primo frame della timeline principale.
codice:
MovieClip.prototype.apri_chiudi = function(id) {
// acquisisco il numero del pulsante premuto...
// cioè l'ultimo carattere del nome
i = id.substring(id.length-1, id.length);
// faccio un ciclo di "scansione" sullo "stato" dei clip
for (x=1; x<=5; x++) {
clp = "clip" + x;
if (x == i) { // se il clip è quello cliccato
_root[clp].chiuso = false;
_root[clp].apri(i);
} else {
if (_root[clp]._currentframe < 11) {
nf = 20 - _root[clp]._currentframe + 1
_root[clp].gotoAndPlay(nf);
}
}
}
}
//
MovieClip.prototype.apri = function(in) {
// var x controllare l'avvenuta chiusura di tutti i clip
// eccetto quello da aprire
clipchiusi = 0;
this.onEnterFrame = function() {
clipchiusi = 0;
for (x=1; x<=5; x++) {
clp = "clip" + x;
if (x != in && _root[clp]._currentframe == 20) {
clipchiusi++;
}
}
if (clipchiusi == 4)
_root[in].gotoAndPlay(1);
delete this.onEnterFrame;
}
}
}