ecco qui un pochino migliorata anche nella creazione dello specchio, sfrutta il metodo refresh() che quando viene richiamato ridisegna gli elementi dentro il clip "mirror"

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("mirror"__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+1;
        
__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();
    }
    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;
    }

nel mio esempio l'ho usata così:
Codice PHP:
var r:Mirror = new Mirror (prova05050);
onEnterFrame = function () {
    
r.refresh();
}
setTimeout(function(){prova.prova.text "ciao"}, 5000);
setTimeout(function(){prova.prova.text "f*ck"}, 10000);
setTimeout(function(){prova.prova.text "riprova"}, 15000); 
usando il setTimeout per cambiare il testo dentro al campo (deve essere dinamico, chiamarsi "prova" e avere il testo incorporato)