Packagefeathers.controls.text
Classpublic class TextBlockTextRenderer
InheritanceTextBlockTextRenderer Inheritance FeathersControl Inheritance starling.display.Sprite
Implements ITextRenderer
Subclasses TextBlockTextEditor

Renders text with a native flash.text.engine.TextBlock from Flash Text Engine (FTE), and draws it to BitmapData to convert to Starling textures. Textures are completely managed by this component, and they will be automatically disposed when the component is disposed.

For longer passages of text, this component will stitch together multiple individual textures both horizontally and vertically, as a grid, if required. This may require quite a lot of texture memory, possibly exceeding the limits of some mobile devices, so use this component with caution when displaying a lot of text.

See also

Introduction to Feathers text renderers
flash.text.engine.TextBlock


Public Properties
 PropertyDefined By
  applyNonLinearFontScaling : Boolean
Specifies that you want to enhance screen appearance at the expense of what-you-see-is-what-you-get (WYSIWYG) print fidelity.
TextBlockTextRenderer
  baseline : Number
[read-only] Returns the text baseline measurement, in pixels.
TextBlockTextRenderer
  baselineFontDescription : FontDescription
The font used to determine the baselines for all the lines created from the block, independent of their content.
TextBlockTextRenderer
  baselineFontSize : Number
The font size used to calculate the baselines for the lines created from the block.
TextBlockTextRenderer
  baselineZero : String
Specifies which baseline is at y=0 for lines created from this block.
TextBlockTextRenderer
  bidiLevel : int
Specifies the bidirectional paragraph embedding level of the text block.
TextBlockTextRenderer
  content : ContentElement
Sets the contents of the TextBlock to a complex value that is more than simple text.
TextBlockTextRenderer
 InheriteddefaultTextEditorFactory : Function
[static] A function used by all UI controls that support text editor to create an ITextEditor instance.
FeathersControl
 InheriteddefaultTextRendererFactory : Function
[static] A function used by all UI controls that support text renderers to create an ITextRenderer instance.
FeathersControl
 Inheriteddepth : int
[read-only] The component's depth in the display list, relative to the stage.
FeathersControl
  disabledElementFormat : ElementFormat
The font and styles used to draw the text when the component is disabled.
TextBlockTextRenderer
  elementFormat : ElementFormat
The font and styles used to draw the text.
TextBlockTextRenderer
 InheritedfocusIndicatorSkin : DisplayObject
If this component supports focus, this optional skin will be displayed above the component when showFocus() is called.
FeathersControl
 InheritedfocusManager : IFocusManager
FeathersControl
 InheritedfocusOwner : IFocusDisplayObject
FeathersControl
 InheritedfocusPadding : Number
Quickly sets all focus padding properties to the same value.
FeathersControl
 InheritedfocusPaddingBottom : Number
The minimum space, in pixels, between the object's bottom edge and the bottom edge of the focus indicator skin.
FeathersControl
 InheritedfocusPaddingLeft : Number
The minimum space, in pixels, between the object's left edge and the left edge of the focus indicator skin.
FeathersControl
 InheritedfocusPaddingRight : Number
The minimum space, in pixels, between the object's right edge and the right edge of the focus indicator skin.
FeathersControl
 InheritedfocusPaddingTop : Number
The minimum space, in pixels, between the object's top edge and the top edge of the focus indicator skin.
FeathersControl
  globalStyleProvider : IStyleProvider
[static] The default IStyleProvider for all TextBlockTextRenderer components.
TextBlockTextRenderer
 Inheritedheight : Number
[override] The height of the component, in pixels.
FeathersControl
 InheritedincludeInLayout : Boolean
Determines if the ILayout should use this object or ignore it.
FeathersControl
 InheritedisCreated : Boolean
[read-only] Determines if the component has been initialized and validated for the first time.
FeathersControl
 InheritedisEnabled : Boolean
Indicates whether the control is interactive or not.
FeathersControl
 InheritedisFocusEnabled : Boolean
FeathersControl
 InheritedisInitialized : Boolean
[read-only] Determines if the component has been initialized yet.
FeathersControl
 InheritedisQuickHitAreaEnabled : Boolean
Similar to mouseChildren on the classic display list.
FeathersControl
 InheritedlayoutData : ILayoutData
Extra parameters associated with this display object that will be used by the layout algorithm.
FeathersControl
  leading : Number
The amount of vertical space, in pixels, between lines.
TextBlockTextRenderer
  lineRotation : String
Rotates the text lines in the text block as a unit.
TextBlockTextRenderer
 InheritedmaxHeight : Number
The maximum recommended height to be used for self-measurement and, optionally, by any code that is resizing this component.
FeathersControl
  maxTextureDimensions : int
The maximum size of individual textures that are managed by this text renderer.
TextBlockTextRenderer
 InheritedmaxWidth : Number
The maximum recommended width to be used for self-measurement and, optionally, by any code that is resizing this component.
FeathersControl
 InheritedminHeight : Number
The minimum recommended height to be used for self-measurement and, optionally, by any code that is resizing this component.
FeathersControl
 InheritedminTouchHeight : Number
If using isQuickHitAreaEnabled, and the hit area's height is smaller than this value, it will be expanded.
FeathersControl
 InheritedminTouchWidth : Number
If using isQuickHitAreaEnabled, and the hit area's width is smaller than this value, it will be expanded.
FeathersControl
 InheritedminWidth : Number
The minimum recommended width to be used for self-measurement and, optionally, by any code that is resizing this component.
FeathersControl
  nativeFilters : Array
Native filters to pass to the flash.text.engine.TextLine instances before creating the texture snapshot.
TextBlockTextRenderer
 InheritednextTabFocus : IFocusDisplayObject
FeathersControl
 InheritedpreviousTabFocus : IFocusDisplayObject
FeathersControl
  snapToPixels : Boolean
Determines if the text should be snapped to the nearest whole pixel when rendered.
TextBlockTextRenderer
 InheritedstyleName : String
The concatenated styleNameList, with values separated by spaces.
FeathersControl
 InheritedstyleNameList : TokenList
[read-only] Contains a list of all "styles" assigned to this control.
FeathersControl
 InheritedstyleProvider : IStyleProvider
When a component initializes, a style provider may be used to set properties that affect the component's visual appearance.
FeathersControl
  tabStops : Vector.<TabStop>
Specifies the tab stops for the text in the text block, in the form of a Vector of TabStop objects.
TextBlockTextRenderer
  text : String
The text to render.
TextBlockTextRenderer
  textAlign : String
The alignment of the text.
TextBlockTextRenderer
  textJustifier : TextJustifier
Specifies the TextJustifier to use during line creation.
TextBlockTextRenderer
  truncateToFit : Boolean
If word wrap is disabled, and the text is longer than the width of the label, the text may be truncated using truncationText.
TextBlockTextRenderer
  truncationText : String
The text to display at the end of the label if it is truncated.
TextBlockTextRenderer
  updateSnapshotOnScaleChange : Boolean
Refreshes the texture snapshot every time that the text renderer is scaled.
TextBlockTextRenderer
  userData : *
Provides a way for the application to associate arbitrary data with the text block.
TextBlockTextRenderer
 Inheritedwidth : Number
[override] The width of the component, in pixels.
FeathersControl
  wordWrap : Boolean
Determines if the text wraps to the next line when it reaches the width (or max width) of the component.
TextBlockTextRenderer
Protected Properties
 PropertyDefined By
 InheritedactualHeight : Number = 0
The final height value that should be used for layout.
FeathersControl
 InheritedactualWidth : Number = 0
The final width value that should be used for layout.
FeathersControl
 InheriteddefaultStyleProvider : IStyleProvider
[read-only] When the FeathersControl constructor is called, the globalStyleProvider property is set to this value.
FeathersControl
 InheritedexplicitHeight : Number = NaN
The height value explicitly set by calling the height setter or setSize().
FeathersControl
 InheritedexplicitWidth : Number = NaN
The width value explicitly set by calling the width setter or setSize().
FeathersControl
  textBlock : TextBlock
The TextBlock instance used to render the text before taking a texture snapshot.
TextBlockTextRenderer
  textSnapshot : Image
An image that displays a snapshot of the native TextBlock in the Starling display list when the editor doesn't have focus.
TextBlockTextRenderer
  textSnapshots : Vector.<Image>
If multiple snapshots are needed due to texture size limits, the snapshots appearing after the first are stored here.
TextBlockTextRenderer
Public Methods
 MethodDefined By
  
Constructor.
TextBlockTextRenderer
 Inherited
hideFocus():void
If the visual indicator of focus has been displayed by showFocus(), call this function to hide it.
FeathersControl
 Inherited
invalidate(flag:String):void
Call this function to tell the UI control that a redraw is pending.
FeathersControl
 Inherited
isInvalid(flag:String = null):Boolean
Indicates whether the control is pending validation or not.
FeathersControl
  
measureText(result:Point = null):Point
Measures the text's bounds (without a full validation, if possible).
TextBlockTextRenderer
 Inherited
move(x:Number, y:Number):void
Sets both the x and the y positions of the control in a single function call.
FeathersControl
 Inherited
setSize(width:Number, height:Number):void
Sets both the width and the height of the control in a single function call.
FeathersControl
 Inherited
showFocus():void
If the object has focus, an additional visual indicator may optionally be displayed to highlight the object.
FeathersControl
 Inherited
validate():void
Immediately validates the display object, if it is invalid.
FeathersControl
Protected Methods
 MethodDefined By
  
If the component's dimensions have not been set explicitly, it will measure its content and determine an ideal size for itself.
TextBlockTextRenderer
 Inherited
clearInvalidationFlag(flag:String):void
Clears an invalidation flag.
FeathersControl
 Inherited
draw():void
Override to customize layout and to adjust properties of children.
FeathersControl
 Inherited
focusInHandler(event:Event):void
Default event handler for FeathersEventType.FOCUS_IN that may be overridden in subclasses to perform additional actions when the component receives focus.
FeathersControl
 Inherited
focusOutHandler(event:Event):void
Default event handler for FeathersEventType.FOCUS_OUT that may be overridden in subclasses to perform additional actions when the component loses focus.
FeathersControl
 Inherited
initialize():void
Called the first time that the UI control is added to the stage, and you should override this function to customize the initialization process.
FeathersControl
 Inherited
Updates the focus indicator skin by showing or hiding it and adjusting its position and dimensions.
FeathersControl
 Inherited
setInvalidationFlag(flag:String):void
Sets an invalidation flag.
FeathersControl
 Inherited
setSizeInternal(width:Number, height:Number, canInvalidate:Boolean):Boolean
Sets the width and height of the control, with the option of invalidating or not.
FeathersControl
Events
 Event Summary Defined By
 InheritedDispatched after the component has validated for the first time.FeathersControl
 InheritedDispatched after initialize() has been called, but before the first time that draw() has been called.FeathersControl
 InheritedDispatched when the width or height of the control changes.FeathersControl
Public Constants
 ConstantDefined By
 InheritedINVALIDATION_FLAG_ALL : String = all
[static] Flag to indicate that everything is invalid and should be redrawn.
FeathersControl
 InheritedINVALIDATION_FLAG_DATA : String = data
[static] Invalidation flag to indicate that the primary data displayed by the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_FOCUS : String = focus
[static] Invalidation flag to indicate that the focus of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_LAYOUT : String = layout
[static] Invalidation flag to indicate that the layout of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_SCROLL : String = scroll
[static] Invalidation flag to indicate that the scroll position of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_SELECTED : String = selected
[static] Invalidation flag to indicate that the selection of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_SIZE : String = size
[static] Invalidation flag to indicate that the dimensions of the UI control have changed.
FeathersControl
 InheritedINVALIDATION_FLAG_SKIN : String = skin
[static] Invalidation flag to indicate that the skin of the UI control has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_STATE : String = state
[static] Invalidation flag to indicate that the state has changed.
FeathersControl
 InheritedINVALIDATION_FLAG_STYLES : String = styles
[static] Invalidation flag to indicate that the styles or visual appearance of the UI control has changed.
FeathersControl
  TEXT_ALIGN_CENTER : String = center
[static] The text will be centered horizontally.
TextBlockTextRenderer
  TEXT_ALIGN_LEFT : String = left
[static] The text will be positioned to the left edge.
TextBlockTextRenderer
  TEXT_ALIGN_RIGHT : String = right
[static] The text will be positioned to the right edge.
TextBlockTextRenderer
Property Detail
applyNonLinearFontScalingproperty
applyNonLinearFontScaling:Boolean

Specifies that you want to enhance screen appearance at the expense of what-you-see-is-what-you-get (WYSIWYG) print fidelity.

In the following example, this property is changed to false:

         textRenderer.applyNonLinearFontScaling = false;

The default value is true.


Implementation
    public function get applyNonLinearFontScaling():Boolean
    public function set applyNonLinearFontScaling(value:Boolean):void

See also

baselineproperty 
baseline:Number  [read-only]

Returns the text baseline measurement, in pixels.


Implementation
    public function get baseline():Number
baselineFontDescriptionproperty 
baselineFontDescription:FontDescription

The font used to determine the baselines for all the lines created from the block, independent of their content.

In the following example, the baseline font description is changed:

         textRenderer.baselineFontDescription = new FontDescription( "Source Sans Pro", FontWeight.BOLD );

The default value is null.


Implementation
    public function get baselineFontDescription():FontDescription
    public function set baselineFontDescription(value:FontDescription):void

See also

baselineFontSizeproperty 
baselineFontSize:Number

The font size used to calculate the baselines for the lines created from the block.

In the following example, the baseline font size is changed:

         textRenderer.baselineFontSize = 20;

The default value is 12.


Implementation
    public function get baselineFontSize():Number
    public function set baselineFontSize(value:Number):void

See also

baselineZeroproperty 
baselineZero:String

Specifies which baseline is at y=0 for lines created from this block.

In the following example, the baseline zero is changed:

         textRenderer.baselineZero = TextBaseline.ASCENT;

The default value is TextBaseline.ROMAN.


Implementation
    public function get baselineZero():String
    public function set baselineZero(value:String):void

See also

bidiLevelproperty 
bidiLevel:int

Specifies the bidirectional paragraph embedding level of the text block.

In the following example, the bidi level is changed:

         textRenderer.bidiLevel = 1;

The default value is 0.


Implementation
    public function get bidiLevel():int
    public function set bidiLevel(value:int):void

See also

contentproperty 
content:ContentElement

Sets the contents of the TextBlock to a complex value that is more than simple text. If the text property is set after the content property, the content property will be replaced with a TextElement.

In the following example, the content is changed to a GroupElement:

         textRenderer.content = new GroupElement( element );

To simply display a string value, use the text property instead:

         textRenderer.text = "Lorem Ipsum";

The default value is null.


Implementation
    public function get content():ContentElement
    public function set content(value:ContentElement):void

See also

disabledElementFormatproperty 
disabledElementFormat:ElementFormat

The font and styles used to draw the text when the component is disabled. This property will be ignored if the content is not a TextElement instance.

In the following example, the disabled element format is changed:

         textRenderer.isEnabled = false;
         textRenderer.disabledElementFormat = new ElementFormat( new FontDescription( "Source Sans Pro" ) );

The default value is null.


Implementation
    public function get disabledElementFormat():ElementFormat
    public function set disabledElementFormat(value:ElementFormat):void

See also

elementFormatproperty 
elementFormat:ElementFormat

The font and styles used to draw the text. This property will be ignored if the content is not a TextElement instance.

In the following example, the element format is changed:

         textRenderer.elementFormat = new ElementFormat( new FontDescription( "Source Sans Pro" ) );

The default value is null.


Implementation
    public function get elementFormat():ElementFormat
    public function set elementFormat(value:ElementFormat):void

See also

globalStyleProviderproperty 
public static var globalStyleProvider:IStyleProvider

The default IStyleProvider for all TextBlockTextRenderer components.

The default value is null.

See also

leadingproperty 
leading:Number

The amount of vertical space, in pixels, between lines.

In the following example, the leading is changed to 20 pixels:

         textRenderer.leading = 20;

The default value is 0.


Implementation
    public function get leading():Number
    public function set leading(value:Number):void
lineRotationproperty 
lineRotation:String

Rotates the text lines in the text block as a unit.

In the following example, the line rotation is changed:

         textRenderer.lineRotation = TextRotation.ROTATE_90;

The default value is TextRotation.ROTATE_0.


Implementation
    public function get lineRotation():String
    public function set lineRotation(value:String):void

See also

maxTextureDimensionsproperty 
maxTextureDimensions:int

The maximum size of individual textures that are managed by this text renderer. Must be a power of 2. A larger value will create fewer individual textures, but a smaller value may use less overall texture memory by incrementing over smaller powers of two.

In the following example, the maximum size of the textures is changed:

         renderer.maxTextureDimensions = 4096;

The default value is 2048.


Implementation
    public function get maxTextureDimensions():int
    public function set maxTextureDimensions(value:int):void
nativeFiltersproperty 
nativeFilters:Array

Native filters to pass to the flash.text.engine.TextLine instances before creating the texture snapshot.

In the following example, the native filters are changed:

         renderer.nativeFilters = [ new GlowFilter() ];

The default value is null.


Implementation
    public function get nativeFilters():Array
    public function set nativeFilters(value:Array):void

See also

snapToPixelsproperty 
snapToPixels:Boolean

Determines if the text should be snapped to the nearest whole pixel when rendered. When this is false, text may be displayed on sub-pixels, which often results in blurred rendering due to texture smoothing.

In the following example, the text is not snapped to pixels:

         textRenderer.snapToPixels = false;

The default value is true.


Implementation
    public function get snapToPixels():Boolean
    public function set snapToPixels(value:Boolean):void
tabStopsproperty 
tabStops:Vector.<TabStop>

Specifies the tab stops for the text in the text block, in the form of a Vector of TabStop objects.

In the following example, the tab stops changed:

         textRenderer.tabStops = new <TabStop>[ new TabStop( TabAlignment.CENTER ) ];

The default value is null.


Implementation
    public function get tabStops():Vector.<TabStop>
    public function set tabStops(value:Vector.<TabStop>):void

See also

textproperty 
text:String

The text to render.

If using the Label component, this property should be set on the Label, and it will be passed down to the text renderer.

The default value is null.


Implementation
    public function get text():String
    public function set text(value:String):void
textAlignproperty 
textAlign:String

The alignment of the text. For justified text, see the textJustifier property.

In the following example, the leading is changed to 20 pixels:

         textRenderer.textAlign = TextBlockTextRenderer.TEXT_ALIGN_CENTER;

The default value is TextBlockTextRenderer.TEXT_ALIGN_LEFT.


Implementation
    public function get textAlign():String
    public function set textAlign(value:String):void

See also

textBlockproperty 
protected var textBlock:TextBlock

The TextBlock instance used to render the text before taking a texture snapshot.

textJustifierproperty 
textJustifier:TextJustifier

Specifies the TextJustifier to use during line creation.

In the following example, the text justifier is changed:

         textRenderer.textJustifier = new SpaceJustifier( "en", LineJustification.ALL_BUT_LAST );


Implementation
    public function get textJustifier():TextJustifier
    public function set textJustifier(value:TextJustifier):void

See also

textSnapshotproperty 
protected var textSnapshot:Image

An image that displays a snapshot of the native TextBlock in the Starling display list when the editor doesn't have focus.

textSnapshotsproperty 
protected var textSnapshots:Vector.<Image>

If multiple snapshots are needed due to texture size limits, the snapshots appearing after the first are stored here.

truncateToFitproperty 
truncateToFit:Boolean

If word wrap is disabled, and the text is longer than the width of the label, the text may be truncated using truncationText.

This feature may be disabled to improve performance.

This feature only works when the text property is set to a string value. If the content property is set instead, then the content will not be truncated.

This feature does not currently support the truncation of text displayed on multiple lines.

In the following example, truncation is disabled:

         textRenderer.truncateToFit = false;

The default value is true.


Implementation
    public function get truncateToFit():Boolean
    public function set truncateToFit(value:Boolean):void

See also

truncationTextproperty 
truncationText:String

The text to display at the end of the label if it is truncated.

In the following example, the truncation text is changed:

         textRenderer.truncationText = " [more]";

The default value is "...".


Implementation
    public function get truncationText():String
    public function set truncationText(value:String):void

See also

updateSnapshotOnScaleChangeproperty 
updateSnapshotOnScaleChange:Boolean

Refreshes the texture snapshot every time that the text renderer is scaled. Based on the scale in global coordinates, so scaling the parent will require a new snapshot.

Warning: setting this property to true may result in reduced performance because every change of the scale requires uploading a new texture to the GPU. Use with caution. Consider setting this property to false temporarily during animations that modify the scale.

In the following example, the snapshot will be updated when the text renderer is scaled:

         textRenderer.updateSnapshotOnScaleChange = true;

The default value is false.


Implementation
    public function get updateSnapshotOnScaleChange():Boolean
    public function set updateSnapshotOnScaleChange(value:Boolean):void
userDataproperty 
userData:*

Provides a way for the application to associate arbitrary data with the text block.

In the following example, the user data is changed:

         textRenderer.userData = { author: "William Shakespeare", title: "Much Ado About Nothing" };


Implementation
    public function get userData():*
    public function set userData(value:any):void

See also

wordWrapproperty 
wordWrap:Boolean

Determines if the text wraps to the next line when it reaches the width (or max width) of the component.

If using the Label component, this property should be set on the Label, and it will be passed down to the text renderer automatically.

The default value is false.


Implementation
    public function get wordWrap():Boolean
    public function set wordWrap(value:Boolean):void
Constructor Detail
TextBlockTextRenderer()Constructor
public function TextBlockTextRenderer()

Constructor.

Method Detail
autoSizeIfNeeded()method
protected function autoSizeIfNeeded():Boolean

If the component's dimensions have not been set explicitly, it will measure its content and determine an ideal size for itself. If the explicitWidth or explicitHeight member variables are set, those value will be used without additional measurement. If one is set, but not the other, the dimension with the explicit value will not be measured, but the other non-explicit dimension will still need measurement.

Calls setSizeInternal() to set up the actualWidth and actualHeight member variables used for layout.

Meant for internal use, and subclasses may override this function with a custom implementation.

Returns
Boolean
measureText()method 
public function measureText(result:Point = null):Point

Measures the text's bounds (without a full validation, if possible).

Parameters

result:Point (default = null)

Returns
Point
Constant Detail
TEXT_ALIGN_CENTERConstant
public static const TEXT_ALIGN_CENTER:String = center

The text will be centered horizontally.

See also

TEXT_ALIGN_LEFTConstant 
public static const TEXT_ALIGN_LEFT:String = left

The text will be positioned to the left edge.

See also

TEXT_ALIGN_RIGHTConstant 
public static const TEXT_ALIGN_RIGHT:String = right

The text will be positioned to the right edge.

See also