Ciao a tutti.

Ho creato un filmato in flash molto semplice, con 4 pulsanti quadrati che si ingrandiscono quando ci si passa sopra col mouse, andando ad occupare tutto lo stage. Quando poi si sposta il mouse fuori dallo stage, il quadrato ingrandito si rimpicciolisce, tornando alla sua dimensione originale, e s'ingrandisce a sua volta un altro quadrato (quello che ha il mouse sopra, ovviamente).

Il codice AS3 che ho usato per fare questa cosa è il seguente (so che si potrebbe ottimizzare ma non fa nulla):

codice:
var num:int = numChildren;

pulsante1.addEventListener(MouseEvent.MOUSE_OVER,ingrandisci1);
pulsante2.addEventListener(MouseEvent.MOUSE_OVER,ingrandisci2);
pulsante3.addEventListener(MouseEvent.MOUSE_OVER,ingrandisci3);
pulsante4.addEventListener(MouseEvent.MOUSE_OVER,ingrandisci4);

pulsante1.addEventListener(MouseEvent.MOUSE_OUT,rimpicciolisci1);
pulsante2.addEventListener(MouseEvent.MOUSE_OUT,rimpicciolisci2);
pulsante3.addEventListener(MouseEvent.MOUSE_OUT,rimpicciolisci3);
pulsante4.addEventListener(MouseEvent.MOUSE_OUT,rimpicciolisci4);

function ingrandisci1(evento:MouseEvent):void{
    var oggetto: DisplayObject = DisplayObject(evento.target)
    pulsante1.gotoAndPlay(2);
    setChildIndex(oggetto,num-1);
}
function ingrandisci2(evento:MouseEvent):void{
    var oggetto: DisplayObject = DisplayObject(evento.target)
    pulsante2.gotoAndPlay(2);
    setChildIndex(oggetto,num-1);
}
function ingrandisci3(evento:MouseEvent):void{
    var oggetto: DisplayObject = DisplayObject(evento.target)
    pulsante3.gotoAndPlay(2);
    setChildIndex(oggetto,num-1);
}
function ingrandisci4(evento:MouseEvent):void{
    var oggetto: DisplayObject = DisplayObject(evento.target)
    pulsante4.gotoAndPlay(2);
    setChildIndex(oggetto,num-1);
}


function rimpicciolisci1(evento:MouseEvent):void{
    var oggetto: DisplayObject = DisplayObject(evento.target)
    pulsante1.gotoAndPlay(31);
    setChildIndex(oggetto,num-1);
}
function rimpicciolisci2(evento:MouseEvent):void{
    var oggetto: DisplayObject = DisplayObject(evento.target)
    pulsante2.gotoAndPlay(31);
    setChildIndex(oggetto,num-1);
}
function rimpicciolisci3(evento:MouseEvent):void{
    var oggetto: DisplayObject = DisplayObject(evento.target)
    pulsante3.gotoAndPlay(31);
    setChildIndex(oggetto,num-1);
}
function rimpicciolisci4(evento:MouseEvent):void{
    var oggetto: DisplayObject = DisplayObject(evento.target)
    pulsante4.gotoAndPlay(31);
    setChildIndex(oggetto,num-1);
}
Come potete vedere ho messo questa riga:
codice:
pulsanteX.gotoAndPlay(31);
per mandare il filmato direttamente all'animazione di rimpicciolimento (che parte dal frame 31).

Ora, il problema è questo: che se tizio porta il mouse fuori dallo stage (o comunque su un altro quadrato) PRIMA che l'animazione d'ingrandimento sia finita, si ottiene un effetto non proprio bello. Si vede il quadrato ingrandirsi all'improvviso (perché l'animazione di rimpicciolimento presuppone che il quadrato è gia stato ingrandito al massimo), e poi rimpicciolirsi...

Io vorrei semplicemente che l'animazione di rimpicciolimento partisse dal punto in cui è arrivato l'ingrandimento.

Sono sicuro che è possibile... ma come?