Non sara' una vera e propria pillola, semplicemente diverse righe di Action Script commentate il piu' possibile per cercare di spiegarvi i concetti alla base di movimenti prospettici e le loro possibili implementazioni rispetto a mouse o altro.

Aprite FlashMX su un documento di 550 x 400 pixels [default] e settate un framerate a 30.

Ora disegnate un rettangolo di 300 x 100 pixel

Assicuratevi che abbia un riempimento solido e con alfa ad almeno 30% [consiglio di usare un colore chiaro, giallo ad esempio] e il bordo come volete...

Ora salvatelo come movieClip con punto di registrazione centrale ... dategli un nome di istanza mc , create un layer sopra questo nella root e scrivete il codice sottoriportato.

Buoni esperimenti a tutti

Codice PHP:
stop();
// Concetti base sulla scala in prospettiva
// Scale=fl/(fl+z)
// [[url]http://www.bit-101.com/tutorials/perspective.html[/url]]
// ... maledetto baco ...
// maggiore sara' z, piu' distante sara' l' oggetto

// Scala
// f = dimensione iniziale
// z = livello di zoom
// x,y = posizionamento
MovieClip.prototype.scale = function(f,z,x,y) {
    var 
/ (z);
    var 
xcenter Stage.width/2;
    var 
ycenter Stage.height/2;
    
this._x xcenter + (s);
    
this._y ycenter + (s);
    
this._xscale this._yscale 100;
}

var 
mc_size mc._width// larghezza del movie genitore per riferimenti sulla distanza
var zoom 70// da quanto parte la zoomata
var zoomarray = new Array(); // necessario per la memoria delle distanze
var total_mcs 20// quanti ne duplica [Diminure zoom_step al crescere dei duplicati]
// alcuni esempi di accoppiate decenti:
// total_mcs = 10; zoom_step = 0.6;
// total_mcs = 20; zoom_step = 0.15;
// total_mcs = 30; zoom_step = 0.05;
var distance 200// incrementa la distanza
for(var 0total_mcsi++) {
    var 
nowi total_mcs-i// rovescio la profondita' per far si che il depth corrisponda
    
mc.duplicateMovieClip("mc"+i,nowi,this); // duplico
    
zoomarray[i] = zoom + (distance i); // assegno la zoomata in base alla profondita'
    
_root["mc"+i].zoomarray[i]; // assegno il riferimento z per ogni mc
    
_root["mc"+i].onEnterFrame = function() {
        var 
_root._xmouse Stage.width/2// x centrale
        
var _root._ymouse Stage.height/2// y centrale
        
        
this.scale(mc_size,this.z,-x,-y);
        
// applico la scala e gli faccio seguire il mouse al contrario rispetto lo stage
        // this.scale(mc_size,this.z,x,y); cosi' avrebbe seguito il mouse
    
}
}
mc._visible false// del primo non ci faccio piu' niente ...

var zoom_step 0.15// velocita' di zoomata;
var zoom_backvelocity 2// velocita' differente quando torna indietro [1 per lasciarla uguale]
_root.onMouseDown = function() {
    
this.onEnterFrame = function() {
        for(var 
0total_mcsi++) {
            if(
i==(total_mcs-1) && _root["mc"+i].< -300 && zoom_step>0) { // se l'ultimo e' a zoom -300 torno indietro
                
zoom_step = -1*(zoom_step) * zoom_backvelocity;
            }
            else if(
i==&& _root["mc0"].100 && zoom_step<0) { // se il primo e' a scala 100, torno avanti
                
zoom_step = -1*(zoom_step) / zoom_backvelocity;
            }
            
zoom -= zoom_step i// rimpicciolisco sempre piu' la zoomata [e' inversa quindi aumenta la scala]
            
zoomarray[i] = zoom + (distance i); // riassegno la memoria della zoomata
            
_root["mc"+i].zoomarray[i]; // riassegno il riferimento al movieClip
            
if(_root["mc"+i].< -300) { // verifico che non sia troppo grande
                
_root["mc"+i]._visible false// e in caso lo faccio sparire [effetto trapasso]
            
}
            else {
                
_root["mc"+i]._visible true;
            }
        }
    }
}
_root.onMouseUp = function() {
    
delete this.onEnterFrame;