 import mx.core.FlexTextField;
 import mx.core.IInvalidating;
 import mx.core.IVisualElement;
-import mx.core.LayoutDirection;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;

            invalidateTightTextHeight = true;
            invalidateTextSizeFlag = true;
        }
        validateTransformMatrix();
    }

    /**
     *  @private
     *  True if we've inherited layoutDirection="rtl".
     *  (implementation largely inspired from UITextField)
     */
    private var mirror: Boolean = false;

    //----------------------------------
    //  x
    //----------------------------------

    private var _x: Number = 0;

    /**
     *  @private
     */
    override public function set x(value: Number): void
    {
        _x = value;
        super.x = value;
        validateTransformMatrix();
    }

    /**
     *  @private
     */
    override public function get x(): Number
    {
           return (mirror) ? _x : super.x;
    }

    /**
     *  @private
     *  Update the transform.matrix based on the mirror flag.  This method must be
     *  called when x, width, or layoutDirection changes.
     */
    private function validateTransformMatrix(): void
    {
        if (mirror) {
            var mirrorMatrix: Matrix = this.transform.matrix;
            // matrix a must be negative
            if (mirrorMatrix.a > 0){
                mirrorMatrix.a = -mirrorMatrix.a;
            }
            mirrorMatrix.tx = _x + width;
            transform.matrix = mirrorMatrix;
        }
        else // layoutDirection changed, mirror=false, reset transform.matrix to its default
        {
            var defaultMatrix: Matrix = this.transform.matrix;
            if (defaultMatrix.a < 0) {
                defaultMatrix.a = -defaultMatrix.a;
            }
            defaultMatrix.tx = _x;
            defaultMatrix.ty = y;
            transform.matrix = defaultMatrix;
        }
    }
    
    /**

    {
        if (invalidateStyleFlag)
        {
            var align:String = getStyle("textAlign");
            if (align == "start")
                align = TextFormatAlign.LEFT;
            if (align == "end")
                align = TextFormatAlign.RIGHT;
            textFormat.align = align;
            textFormat.font = getStyle("fontFamily");
            textFormat.bold = getStyle("fontWeight") == "bold";
