Adobe® Flex® 4 Language Reference
Hide Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
flashx.textLayout.factory 
TextFlowTextLineFactory 
Packageflashx.textLayout.factory
Classpublic final class TextFlowTextLineFactory
InheritanceTextFlowTextLineFactory Inheritance TextLineFactoryBase Inheritance Object

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

The TextFlowTextLineFactory class provides a simple way to create TextLines for displaying text from a text flow.

The text lines are static and created fit in a single bounding rectangle, but can have multiple paragraphs and formats as well as inline graphics. To create TextLine objects directly from a string, use StringTextLineFactory.

Note: When using inline graphics, the source property of the InlineGraphicElement object must either be an instance of a DisplayObject or a Class object representing an embedded asset. URLRequest objects cannot be used. The width and height of the inline graphic at the time the line is created is used to compose the flow.

View the examples

See also



Public Properties
 PropertyDefined By
 InheritedcompositionBounds : Rectangle
The rectangle within which text lines are created.
TextLineFactoryBase
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 InheritedhorizontalScrollPolicy : String
Specifies how lines are created when the composition bounds are not large enough.
TextLineFactoryBase
 InheritedisTruncated : Boolean
[read-only] Indicates whether text was truncated when lines were last created.
TextLineFactoryBase
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
 InheritedswfContext : ISWFContext
The ISWFContext instance used to make FTE calls as needed.
TextLineFactoryBase
 InheritedtruncationOptions : flashx.textLayout.factory:TruncationOptions
Specifies the options for truncating the text if it doesn't fit in the composition bounds.
TextLineFactoryBase
 InheritedverticalScrollPolicy : String
Specifies how lines are created when the composition bounds are not large enough.
TextLineFactoryBase
Public Methods
 MethodDefined By
  
Creates a TextFlowTextLineFactory object.
TextFlowTextLineFactory
  
Creates TextLine objects from the specified text flow.
TextFlowTextLineFactory
 Inherited
The smallest rectangle in which the layed-out content fits.
TextLineFactoryBase
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
Constructor Detail

TextFlowTextLineFactory

()Constructor
public function TextFlowTextLineFactory()

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

Creates a TextFlowTextLineFactory object.

Method Detail

createTextLines

()method
public function createTextLines(callback:Function, textFlow:flashx.textLayout.elements:TextFlow):void

Language Version: ActionScript 3.0
Runtime Versions: Flash Player 10, AIR 1.5

Creates TextLine objects from the specified text flow.

The text lines are composed to fit the bounds assigned to the compositionBounds property. As each line is created, the factory calls the function specified in the callback parameter. This function is passed the TextLine object and is responsible for displaying the line. If a line has a background color, the factory also calls the callback function with a Shape object containing a rectangle of the background color.

Parameters

callback:Function — function to call with each generated TextLine object. The callback will be called with a Shape object representing any background color (if present), and with TextLine objects for the text.
 
textFlow:flashx.textLayout.elements:TextFlow — The TextFlow from which the lines are created.

TextFlowTextLineFactory_example.as

The following example uses the TextFlowTextLineFactory to create a set of text lines. The factory method, createTextLines() is called twice using the same phrase. The factory properties and flow formats are adjusted between calls to create a "drop shadow" effect.
package flashx.textLayout.factory.examples
{
    import flash.display.Sprite;
    import flash.display.DisplayObject;
    import flash.geom.Rectangle;
    import flash.text.engine.TextLine;
    
    import flashx.textLayout.elements.ParagraphElement;
    import flashx.textLayout.elements.SpanElement;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.factory.TextFlowTextLineFactory;
    import flashx.textLayout.formats.TextLayoutFormat;

    public class TextFlowTextLineFactory_example extends Sprite
    {
        public function TextFlowTextLineFactory_example()
        {
            var factory:TextFlowTextLineFactory = new TextFlowTextLineFactory();
            factory.compositionBounds = new Rectangle( 100, 100, 200, 130 );
            
            var flow:TextFlow = new TextFlow();

            var format:TextLayoutFormat = new TextLayoutFormat();
            format.fontFamily = "LilyUPC, Verdana, _sans";
            format.fontSize = 32;
            format.color = 0x000000;
            format.textAlpha = .5;
            
            var span:SpanElement = new SpanElement();
            span.text = "The quick brown fox jumped over the lazy dog.";            
            span.format = format;
            
            var para:ParagraphElement = new ParagraphElement();
            para.addChild( span );
            
            flow.addChild( para );
            
            factory.createTextLines( useTextLines, flow );
            
            factory.compositionBounds = new Rectangle( 99, 99, 200, 130 );
            format.color = 0x990000;
            format.textAlpha = 1;
            span.format = format;
            factory.createTextLines( useTextLines, flow );
            
            graphics.beginFill(0x555555,.5);
            graphics.drawRect( 99, 99, 201, 131 );
            graphics.endFill();

        }
        
        private function useTextLines( lineOrShape:DisplayObject ):void
        {
            this.addChild( lineOrShape );
        }
        
    }
}