While loops and alpha

The trace on this loop shows the values are changing, but the actual event is instantaneous and without alpha.


function txtFade(mc:Object,i:Number):Number{
    var boolDone:Boolean = false;
    var bool:Boolean = true;
    while(boolDone == false){
        if(bool == true){
            if(mc.alpha>0){
                mc.alpha -= 0.01;
trace(mc.alpha);
            }else{
                bool = false;
                i++;
            }
        }else{
            if(mc.alpha<1){
                mc.alpha += 0.01;
            }else{
                boolDone = true;
            }
        }
    }
    return i;
}

Any ideas?

Thanks