      */
     private var textInvalid:Boolean = false;
         
+    /**
+     *  @private
+     *  This flag is set to true if the text must be clipped.
+     */
+    private var isOverset:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var stylesChanged:Boolean = false;
+
     //--------------------------------------------------------------------------
     //
     //  Overridden properties

            hostFormatsInvalid = true;
        else
            setHostFormat(styleProp);
    }

    //--------------------------------------------------------------------------

        
        textFlowComposer.addTextLines(DisplayObjectContainer(displayObject));

        // Just recomposed so reset.
        stylesChanged = false;
        
        // Listen for "damage" events in case the textFlow is 
        // modified programatically.
        textFlow.addEventListener(DamageEvent.DAMAGE, textFlow_damageHandler);        

        return textFlowComposer.isOverset;
    }
    
    //--------------------------------------------------------------------------
    //
    //  Event handlers
    //
    //--------------------------------------------------------------------------
    
    /**
     *  @private
     *  Called when the TextFlow dispatches a 'damage' event
     *  to indicate it has been modified.
     */
    private function textFlow_damageHandler(
                            event:DamageEvent):void
    {
        //trace("damageHandler", "damageStart", event.damageStart, "damageLength", event.damageLength);
                
        // The text flow changed.  It could have been either/or content or
        // styles within the flow.
        contentChanged = true;
        stylesChanged = true;

        // Unless both width/height were specified, need to recalc size.
        if (isNaN(explicitWidth) || isNaN(explicitHeight))
            invalidateSize();
        
        invalidateDisplayList();  
    }    
}

}
