Ora ho capito leggermente di più.
Si può fare in vari modi.
Non vorrei stravolgere il tuo lavoro ma credo sia più efficace se rivedessi il tutto in un'ottica un po' più da programmatore.
Purtroppo mi viene difficile spiegarti il procedimento se sei al livello base però ci provo ugualmente.
Supponiamo di riprendere tutto da zero...
Il metodo che ti spiego utilizza una variabile che tiene traccia dell'ultimo clip selezionato in modo da poterne gestire la chiusura al momento opportuno.
Non ci sono delle condizioni "if" ma tuttavia ci sono altre parti di script che potresti non capire appieno. Per questo ho cercato di commentare al meglio lo script che ho utilizzato.
Per prima cosa è preferibile NON associare le azioni direttamente sulle istanze (come hai fatto con il gestore "on" sui bottoni) ma piuttosto si dovrebbe porre lo script in un frame (ad esempio sul primo frame della root) e gestire le istanze richiamandole tramite il relativo nome istanza che andrà indicato su ciascuna di esse, e utilizzando gli appositi gestori, metodi e funzioni.
Per cui disponi sullo stage (nella root) i 4 bottoni e istanziali come "bottone0", "bottone1", "bottone2", "bottone3".
Mentre i clip li puoi istanziare come "casa", "cucina", "salotto", "corridoio", così come dovresti avere già fatto.
Ognuno di questi 4 clip deve avere una stessa struttura di frame.
Definisci ad esempio:
- un primo frame vuoto con uno stop();
- un frame etichettato "entrata" da cui inizia la relativa serie di frame per la transizione in entrata. All'ultimo frame di questa transizione metti uno stop();
- Un frame etichettato "uscita" da cui inizia la relativa serie di frame per la transizione in uscita.
Metto in allegato un'immagine della timeline come esempio per capire meglio.
I due stop() vanno messi nei due frame con la "a".
A questo punto inserisci il seguente script sul primo frame della root.
Codice PHP:
// definisco un array dei clip da associare ai bottoni
var clips = [casa, cucina, salotto, corridoio];
// definisco la variabile che identificherà l'ultimo clip selezionato
var ultimoClipSelezionato;
// ciclo la serie di bottoni e assegno ad ognuno la funzione per l'evento release
for (var id = 0; id<4; id++) {
var bottone = this['bottone'+id];
// per ogni bottone definisco la variabile clipAssociato
bottone.clipAssociato = clips[id];
// assegno la funzione per il release
bottone.onRelease = function() {
// se ultimoClipSelezionato è stato valorizzato, ne eseguo l'uscita
(ultimoClipSelezionato) && ultimoClipSelezionato.gotoAndPlay('uscita');
// aggiorno ultimoClipSelezionato
ultimoClipSelezionato = this.clipAssociato;
// eseguo l'entrata del clip associato a questo bottone
this.clipAssociato.gotoAndPlay('entrata');
};
}
Più di questo non saprei dirti.
Spero di esserti stato d'aiuto ma soprattutto di non averti creato maggiore confusione