Salve a tuti,
Sto utilizzando la classe mirror e tutto funge ok tranne che ovviamente sugli mc che contengono animazioni all'interno o "parti mobili", pur avendo letto diversi 3d in materia non sono riuscito a risolvere il problema...
Qualcuno e' in grado di darmi delucidazioni o indicarmi una via...

Nello specifico ho un mc all'interno del quale ce' un livello maskera su 4 immagini differenti che vengono richiamate dall'esterno...

questo e' il contenuto della mia classe mirror.as:
Codice PHP:
import flash.display.BitmapData;
import flash.geom.Matrix;
class 
Mirror {
    private var 
__t:MovieClip;
    private var 
__d:Number;
    private var 
__o:Number;
    private var 
__u:Number;
    private var 
__m:MovieClip;
    private var 
__b:MovieClip;
    private var 
__g:MovieClip;
    private var 
__v:Array;
    function 
Mirror (t:MovieClipd:Numbero:Numberu:Number) {
        
__t t;
        
__d d;
        
__o o;
        
__u u;
        
__m __t._parent.createEmptyMovieClip(__getname__(), __t._parent.getNextHighestDepth());
        
__init__ ();
    }
    private function 
__init__ () {
        
__b __m.createEmptyMovieClip("bitmap"1);
        
__g __m.createEmptyMovieClip("gradient"2);
        
__gradientshape__(__g__t._width__t._height*(__u/100), __o);
        
__b.cacheAsBitmap __g.cacheAsBitmap true;
        
__b.setMask(__g);
        
__v = [];
        
__v.push(new BitmapData(__t._width__t._heighttrue0));
        
__v.push(new Matrix());
        
__v.push(__t.getRect(__t));
        
__v[1].translate(-__v[2].xMin, -(__t._height+__v[2].yMin));
        
__v[1].scale(1, -1);
        
__v[0].draw(__t__v[1]);
        
__b.attachBitmap(__v[0], 1);
        
__b._x __g._x __v[2].xMin;
        
__b._y __g._y __v[2].yMin;
        
__m._x __t._x;
        
__m._y __t._y+__t._height+__d;
    }
    private function 
__gradientshape__ (t:MovieClipw:Numberh:Numbera:Number) {
        var 
matr:Matrix = new Matrix();
        
matr.createGradientBox(wh90/180*Math.PI00);
        
t.beginGradientFill("linear", [00], [a0], [0255], matr"pad");
        
t.lineTo(w0);
        
t.lineTo(wh);
        
t.lineTo(0h);
        
t.lineTo(00);
        
t.endFill();
    }
    private function 
__getname__ ():String {
        var 
r:String "";
        var 
s:String "abcdefghkijlmnopqrstuvwxyz0123456789ABCDEFGHKIJLMNOPQRSTUVWXYZ";
        var 
a:Array = s.split("");
        for(var 
i:Number 06i++){
            var 
n:Number Math.floor(Math.random()*a.length);
            
r+=a[n];
        }
        return 
r;
    }
    public function 
refresh () {
        
__b.removeMovieClip();
        
__g.removeMovieClip();
        
__init__();
    }
    public function 
set distance (d:Number) {
        
__d d;
    }
    public function 
get distance ():Number {
        return 
__d;
    }
    public function 
set opacity (o:Number) {
        
__o o;
    }
    public function 
get opacity ():Number {
        return 
__o;
    }
    public function 
set uncovered (u:Number) {
        
__u u;
    }
    public function 
get uncovered ():Number {
        return 
__u;
    }
    public function 
get mirror ():MovieClip {
        return 
__m;
    }

la classse la richiamo cosi:
var r:Mirror = new Mirror(mc,0, 50, 100);


Qualora ci fosse qualcuno dotato di buona volonta', sarei anche curioso di capire se fosse possibile distorcere l'immagine riflessa con un effetto tipo skew cioe' variando indipendentemente le dimensioni in larghezza dei due bordi superiore ed inferiore dell'immagine, per ottenere un effetto di riflessione su un piano ortogonale all'immagine riflessa...

grazie a tutti, sempre e comunque...