ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
flashx.textLayout.conversion 

TextConverter  - AS3

Packageflashx.textLayout.conversion
Classpublic class TextConverter
InheritanceTextConverter Inheritance Object

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

This is the gateway class for handling import and export. It serves as a unified access point to the conversion functionality in the Text Layout Framework. It contains a registry for predefined as well as user defined input and/or output converters, plus a set of conversion methods.

The format of the converted data is not predefined; user written converters are free to accept and return any format of their choice. Common formats are strings, XML, and ByteArray instances. Converter authors should document which formats are supported.

View the examples

More examples



Public Properties
 PropertyDefined By
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  numFormats : int
[static] [read-only] Number of formats.
TextConverter
Public Methods
 MethodDefined By
  
addFormat(format:String, importerClass:Class, exporterClass:Class, clipboardFormat:String):void
[static] Register a new format for import/export.
TextConverter
  
addFormatAt(index:int, format:String, importerClass:Class, exporterClass:Class = null, clipboardFormat:String = null):void
[static] Register a new format for import/export, at the specified location.
TextConverter
  
[static] Exports a TextFlow to a specified format.
TextConverter
  
[static] Creates and returns an export converter, which you can then use to export from a TextFlow to a source string or XML object.
TextConverter
  
[static] Returns the format name for the index'th format.
TextConverter
  
[static] Returns the FormatDescriptor for the index'th format.
TextConverter
  
[static] Creates and returns an import converter, which you can then use to import from a source string, an XML object, or any user defined data formats to a TextFlow.
TextConverter
 Inherited
Indicates whether an object has a specified property defined.
Object
  
[static] Creates a TextFlow from source content in a specified format.
TextConverter
 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
  
[static] Remove the format.
TextConverter
  
[static] Remove the format at the index location.
TextConverter
 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
Public Constants
 ConstantDefined By
  PLAIN_TEXT_FORMAT : String = "plainTextFormat"
[static] Plain text format.
TextConverter
  TEXT_FIELD_HTML_FORMAT : String = "textFieldHTMLFormat"
[static] HTML format.
TextConverter
  TEXT_LAYOUT_FORMAT : String = "textLayoutFormat"
[static] TextLayout Format.
TextConverter
Property Detail

numFormats

property
numFormats:int  [read-only]

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

Number of formats.



Implementation
    public static function get numFormats():int
Method Detail

addFormat

()method
public static function addFormat(format:String, importerClass:Class, exporterClass:Class, clipboardFormat:String):void

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

Register a new format for import/export. The new format will be added at the end, as the lowest priority. Location can be significant for clients that have multiple choices for which format to use, such as when importing from the external clipboard. The new format may support importing and/or exporting. If the format has already been added, then it will be present in multiple locations. The first one found will be used.

Parameters

format:String — The import converter class to register or null
 
importerClass:Class — The export converter class to register or null
 
exporterClass:Class — The format string tagging the converter classes. Formats can be any name, but must be unique.
 
clipboardFormat:String — The string used as the clipboard format when converting to/from the clipboard. Make this null if the format doesn't support clipboard access.

addFormatAt

()method 
public static function addFormatAt(index:int, format:String, importerClass:Class, exporterClass:Class = null, clipboardFormat:String = null):void

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

Register a new format for import/export, at the specified location. Location can be significant for clients that have multiple choices for which format to use, such as when importing from the external clipboard. Lower numbers indicate higher priority; these converters will be tried first. The new format may support importing and/or exporting. If the format has already been added, then it will be present in multiple locations. The first one found will be used.

Parameters

index:int — The import converter class to register or null
 
format:String — The export converter class to register or null
 
importerClass:Class — The format string tagging the converter classes
 
exporterClass:Class (default = null) — The string used as the clipboard format when converting to/from the clipboard. Make this null if the format doesn't support clipboard access.
 
clipboardFormat:String (default = null)

export

()method 
public static function export(source:flashx.textLayout.elements:TextFlow, format:String, conversionType:String):Object

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

Exports a TextFlow to a specified format.

Use one of the static constants supplied with this class, a MIME type, or a user defined format for user defined exporters to specify the format parameter:

  • TextConverter.TEXT_FIELD_HTML_FORMAT
  • TextConverter.PLAIN_TEXT_FORMAT
  • TextConverter.TEXT_LAYOUT_FORMAT

Specify the type of the exported data in the conversionType parameter with one of the static constants supplied by the ConversionType class, or a user defined data type for user defined exporters:

  • ConversionType.STRING_TYPE
  • ConversionType.XML_TYPE
Returns a representation of the TextFlow in the specified format, or null on errors.

Parameters

source:flashx.textLayout.elements:TextFlow — Source content
 
format:String — Output format
 
conversionType:String — Type of exported data

Returns
Object — Object Exported form of the TextFlow, or null on errors

Related API Elements

getExporter

()method 
public static function getExporter(format:String):flashx.textLayout.conversion:ITextExporter

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

Creates and returns an export converter, which you can then use to export from a TextFlow to a source string or XML object. Use this function if you have many separate exports to perform. It is equivalent to calling flashx.textLayout.conversion.TextConverter.export().

Use one of the static constants supplied with this class to specify the format parameter:

  • TextConverter.TEXT_FIELD_HTML_FORMAT
  • TextConverter.PLAIN_TEXT_FORMAT
  • TextConverter.TEXT_LAYOUT_FORMAT

If the format has been added multiple times, the first one found will be used.

Parameters

format:String — Target format for exported data

Returns
flashx.textLayout.conversion:ITextExporter — ITextExporter Text exporter that can export in the specified format

Related API Elements


Example  ( How to use this example )

This code snippet shows a use of the getExporter method to perform repeated exports of formatted text.

package flashx.textLayout.conversion.examples
{
    import flashx.textLayout.conversion.ConversionType;
    import flashx.textLayout.conversion.ITextExporter;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.elements.TextFlow;
    
    public class getExporter_example 
    {
        // Serialize the TextFlow into a String
        public function export(textFlow:TextFlow):String
        {
            var exporter:ITextExporter = TextConverter.getExporter(TextConverter.TEXT_LAYOUT_FORMAT);
            return exporter.export(textFlow, ConversionType.STRING_TYPE) as String;
        }
    }
}

getFormatAt

()method 
public static function getFormatAt(index:int):String

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

Returns the format name for the index'th format.

Parameters

index:int

Returns
String

getFormatDescriptorAt

()method 
public static function getFormatDescriptorAt(index:int):FormatDescriptor

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

Returns the FormatDescriptor for the index'th format.

Parameters

index:int

Returns
FormatDescriptor

getImporter

()method 
public static function getImporter(format:String, config:IConfiguration = null):flashx.textLayout.conversion:ITextImporter

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

Creates and returns an import converter, which you can then use to import from a source string, an XML object, or any user defined data formats to a TextFlow. Use this method if you have many separate imports to perform, or if you want to handle errors during import. It is equivalent to calling flashx.textLayout.conversion.TextConverter.importToFlow().

Use one of the static constants supplied with this class to specify the format parameter, a MIME type, or a user defined data format.

  • TextConverter.TEXT_FIELD_HTML_FORMAT
  • TextConverter.PLAIN_TEXT_FORMAT
  • TextConverter.TEXT_LAYOUT_FORMAT

If the format has been added multiple times, the first one found will be used.

Parameters

format:String — Format of source content. Use constants from flashx.textLayout.conversion.TextConverter.TEXT_LAYOUT_FORMAT, PLAIN_TEXT_FORMAT, TEXT_FIELD_HTML_FORMAT etc, a MIME type, or a user defined format.
 
config:IConfiguration (default = null) — configuration to use during this import. null means take the current default. You can also set the configuration via the ITextImporter.configuration property.

Returns
flashx.textLayout.conversion:ITextImporter — ITextImporter Text importer that can import the source data

Related API Elements


Example  ( How to use this example )

This code snippet shows a use of the getImporter method to perform repeated imports of formatted text. Note that errors are cleared at the beginning of each call to importToFlow.

package flashx.textLayout.conversion.examples
{
    import flashx.textLayout.conversion.ITextImporter;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.elements.TextFlow;
    
    public class getImporter_example 
    {
        public function importAndCheckErrors():TextFlow
        {
            var markup:String = "<TextFlow xmlns='http://ns.adobe.com/textLayout/2008'><p><span>Hello, World</span></p></TextFlow>";
            var importer:ITextImporter = TextConverter.getImporter(TextConverter.TEXT_LAYOUT_FORMAT);
            importer.throwOnError = false;
            var textFlow:TextFlow = importer.importToFlow(markup);
            if (!textFlow)
            {
                var errors:Vector.<String> = importer.errors;
                //deal with import errors
            }
            return textFlow;
        }
    }
}

importToFlow

()method 
public static function importToFlow(source:Object, format:String, config:IConfiguration = null):flashx.textLayout.elements:TextFlow

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

Creates a TextFlow from source content in a specified format.

Use one of the static constants supplied with this class, a MIME type, to specify the format parameter, or use a user defined value for user-registered importers:

  • TextConverter.TEXT_FIELD_HTML_FORMAT
  • TextConverter.PLAIN_TEXT_FORMAT
  • TextConverter.TEXT_LAYOUT_FORMAT

Parameters

source:Object — Source content
 
format:String — Format of source content
 
config:IConfiguration (default = null) — IConfiguration to use when creating new TextFlows

Returns
flashx.textLayout.elements:TextFlow — TextFlow that was created from the source, or null on errors.

Related API Elements

removeFormat

()method 
public static function removeFormat(format:String):void

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

Remove the format. If a format was added multiple times, only the first one found is removed.

Parameters

format:String — The converter format string to remove

removeFormatAt

()method 
public static function removeFormatAt(index:int):void

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

Remove the format at the index location.

Parameters

index:int — The format to remove
Constant Detail

PLAIN_TEXT_FORMAT

Constant
public static const PLAIN_TEXT_FORMAT:String = "plainTextFormat"

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

Plain text format. Use this for creating a TextFlow from a simple, unformatted String, or for creating a simple, unformatted String from a TextFlow.

TEXT_FIELD_HTML_FORMAT

Constant 
public static const TEXT_FIELD_HTML_FORMAT:String = "textFieldHTMLFormat"

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

HTML format. Use this for importing from, or exporting to, a TextFlow using the HTML fomat. The Text Layout Framework HTML supports a subset of the tags and attributes supported by the TextField class in the flash.text package.

The following table lists the HTML tags and attributes supported for the import and export process (tags and attributes supported by TextField, but not supported by the Text Layout Framework are specifically described as not supported):

Tag Description
Anchor tag The <a> tag creates a hypertext link and supports the following attributes:
  • target: Specifies the name of the target window where you load the page. Options include _self, _blank, _parent, and _top. The _self option specifies the current frame in the current window, _blank specifies a new window, _parent specifies the parent of the current frame, and _top specifies the top-level frame in the current window.
  • href: Specifies a URL. The URL can be either absolute or relative to the location of the SWF file that is loading the page. An example of an absolute reference to a URL is http://www.adobe.com; an example of a relative reference is /index.html. Absolute URLs must be prefixed with http://; otherwise, Flash treats them as relative URLs. Note: Unlike the TextField class, ActionScript link events are not supported. Neither are a:link, a:hover, and a:active styles.
Bold tag The <b> tag renders text as bold. A bold typeface must be available for the font used.
Break tag The <br> tag creates a line break in the text.
Font tag The <font> tag specifies a font or list of fonts to display the text.The font tag supports the following attributes:
  • color: Only hexadecimal color (#FFFFFF) values are supported.
  • face: Specifies the name of the font to use. As shown in the following example, you can specify a list of comma-delimited font names, in which case Flash Player selects the first available font. If the specified font is not installed on the local computer system or isn't embedded in the SWF file, Flash Player selects a substitute font.
  • size: Specifies the size of the font. You can use absolute pixel sizes, such as 16 or 18 or relative point sizes, such as +2 or -4.
  • letterspacing: Specifies the tracking (manual kerning) in pixels to be applied to the right of each character.
  • kerning: Specifies whether kerning is enabled or disabled. A non-zero value enables kerning, while zero disables it.
Image tag The <img> tag lets you embed external image files (JPEG, GIF, PNG), SWF files, and movie clips inside text.

The <img> tag supports the following attributes:

  • src: Specifies the URL to an image or SWF file, or the linkage identifier for a movie clip symbol in the library. This attribute is required; all other attributes are optional. External files (JPEG, GIF, PNG, and SWF files) do not show until they are downloaded completely.
  • width: The width of the image, SWF file, or movie clip being inserted, in pixels.
  • height: The height of the image, SWF file, or movie clip being inserted, in pixels.

Note: Unlike the TextField class, the following attributes are not supported: align, hspace, vspace, id, and checkPolicyFile.

Italic tag The <i> tag displays the tagged text in italics. An italic typeface must be available for the font used.
List item tag Note: Unlike the TextField class, the List item tag is not supported.
Paragraph tag The <p> tag creates a new paragraph. The <p> tag supports the following attributes:
  • align: Specifies alignment of text within the paragraph; valid values are left, right, justify, and center.
  • class: Specifies a class name that can be used for styling
Span tag The <span> tag supports the following attributes:
  • class: Specifies a class name that can be used for styling. While span tags are often used to set a style defined in a style sheet, TLFTextField instances do not support style sheets. The span tag is available for TLFTextField instances to refer to a class with style properties.
  • You can also put properties directly in the span tag: <span fontFamily="Arial">Hi there</span>. However, nested span tags are not supported.
Text format tag

The <textformat> tag lets you use a subset of paragraph formatting properties of the TextFormat class within text fields, including line leading, indentation, margins, and tab stops. You can combine <textformat> tags with the built-in HTML tags.

The <textformat> tag has the following attributes:

  • indent: Specifies the indentation from the left margin to the first character in the paragraph; corresponds to TextFormat.indent. Both positive and negative numbers are acceptable.
  • blockindent: Specifies the indentation applied to all lines of the paragraph.
  • leftmargin: Specifies the left margin of the paragraph, in points; corresponds to TextFormat.leftMargin.
  • rightmargin: Specifies the right margin of the paragraph, in points; corresponds to TextFormat.rightMargin.
  • leading: Specifies the leading (line height) measured in pixels between a line's ascent and the previous line's descent
  • tabstops: Specifies a comma-separated list of tab stop positions for the paragraph.
Underline tag The <u> tag underlines the tagged text.

When an unknown tag is imported the textFieldHTMLFormat importer will either set a single FlowElement's typeName property to that tag name or create a DivElement or a SubParagraphGroupElement with its typeName property set to the tag name.

The textFieldHTMLFormat exporter will export typeName as the XML tag when it is different from the default.

Related API Elements

TEXT_LAYOUT_FORMAT

Constant 
public static const TEXT_LAYOUT_FORMAT:String = "textLayoutFormat"

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

TextLayout Format. Use this for importing from, or exporting to, a TextFlow using the TextLayout markup format. Text Layout format will detect the following errors:

  • Unexpected namespace
  • Unknown element
  • Unknown attribute
TextConverter_example.as

This example shows a use of the TextConverter conversion class. Text in a standard markup format is imported into a TextFlow object and then displayed. The text is then exported in XML format.

package flashx.textLayout.conversion.examples 
{
    import flash.display.Sprite;
    import flashx.textLayout.container.ContainerController;
    import flashx.textLayout.elements.TextFlow;
    import flashx.textLayout.conversion.TextConverter;
    import flashx.textLayout.conversion.ConversionType;

    public class TextConverter_example extends Sprite
    {
        public function TextConverter_example()
        {
            var markup:String = "<TextFlow xmlns='http://ns.adobe.com/textLayout/2008'><p><span>Hello, World</span></p></TextFlow>";
            var textFlow:TextFlow = TextConverter.importToFlow(markup, TextConverter.TEXT_LAYOUT_FORMAT);
            textFlow.flowComposer.addController(new ContainerController(this, 200, 50));
            textFlow.flowComposer.updateAllControllers();
            //export to XML
            var xmlOut:XML = TextConverter.export(textFlow,TextConverter.TEXT_LAYOUT_FORMAT, ConversionType.XML_TYPE) as XML;
        }
    }
}