Ciao
Il codice proposto da daniele63 è ActionScript 2.0 e come hai ben intuito swapDepths è un metodo della classe MovieClip e non funziona su istanze della classe Button.
Con ActionScript 3.0, stesso discorso, ogni classe ha le sue proprietà e i suoi metodi.
Io uso AS3 quindi tutto quello che segue, anche se ha similitudini con AS2 si riferisce a AS3.
La classe MovieClip è più potente della classe Button in quanto tutto quello che si può fare con un Bottone, si può ottenere con una MovieClip mentre invece con un Bottone, non è possibile fare tutto quello che si può fare con una MovieClip.
E' consigliato quindi utilizzare istanze della classe Button solo quando non si devono ottenere funzionalità particolari riservate alla classe movieClip e per comodità, in quanto certe funzionalità come il mouse Over, mouse Out, Click e manina sono già configurate nella classe Button e non serve scrivere il codice AS per utilizzarle.
Ora, il tuo problema è che ingrandendo il pulsante, questo non va a coprire i pulsanti vicini e l'ingrandimento finisce sotto di essi.
Vorresti invece che il pulsante che vai a ingrandire si posizioni sopra tutti gli altri, al rilascio, torni alle dimensioni iniziali per lasciare spazio all'ingrandimento dei pulsanto vicini che vai a toccare con il mouse.
Per fare questo occorre giocare sui livelli in dinamico utilizzando la proprietà numChildren e il metodo setChildIndex.
Per prima cosa ti serve lavorare su pulsanti creati da MovieClip.
Nel primo fotogramma della sua timeline metti uno stop();
Nel secondo, puoi creare la tua animazione fotogramma per fotogramma o importare un altro clip con la sua timeline completa.
Sposti quindi i tuoi pulsanti (movieClip) sulla timeline principale, su un'unico livello, e dai a ognuno il suo nome istanza nelle sue proprietà.
Inserisci quindi questo codice:
Codice PHP:
var num:int = numChildren;
pulsante1.addEventListener(MouseEvent.MOUSE_OVER,ingrandisci1);
pulsante2.addEventListener(MouseEvent.MOUSE_OVER,ingrandisci2);
pulsante1.addEventListener(MouseEvent.MOUSE_OUT,rimpicciolisci1);
pulsante2.addEventListener(MouseEvent.MOUSE_OUT,rimpicciolisci2);
function ingrandisci1(evento:MouseEvent):void{
var oggetto: DisplayObject = DisplayObject(evento.target)
pulsante1.gotoAndStop(2);
setChildIndex(oggetto,num-1);
}
function ingrandisci2(evento:MouseEvent):void{
var oggetto: DisplayObject = DisplayObject(evento.target)
pulsante2.gotoAndStop(2);
setChildIndex(oggetto,num-1);
}
function rimpicciolisci1(evento:MouseEvent):void{
pulsante1.gotoAndStop(1);
}
function rimpicciolisci2(evento:MouseEvent):void{
pulsante2.gotoAndStop(1);
}
Ovviamente questo è un esempio applicato a 2 soli pulsanti di nome "pulsante1" e "pulsante2" che puoi clonare per un numero indefinito di pulsanti.
Come puoi vedere il Listener associato al mouse Over e al mouse Out richiamano una funzione che fa spostare la timeline del clip sul fotogramma richiesto.
Essendo funzioni uguali per tutti i pulsanti si potrebbe ottimizzare e ridurre tutto il codice in molte righe in meno ma credo che per ora, per capire bene la logica di ActionScript 3.0 utilizzata, possa esserti utile studiarlo scritto così.
ciao e buon lavoro !