flashx.textLayout.conversion

# TextConverter - AS3

Package | flashx.textLayout.conversion
Class | public class TextConverter
Inheritance | TextConverter 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

Creating a TextFlow object with the TextConverter class
Importing and exporting text with TLF

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | constructor : 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
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined 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
|  | export(source:flashx.textLayout.elements:TextFlow, format:String, conversionType:String):Object [static] Exports a TextFlow to a specified format. | TextConverter
|  | getExporter(format:String):flashx.textLayout.conversion:ITextExporter [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
|  | getFormatAt(index:int):String [static] Returns the format name for the index'th format. | TextConverter
|  | getFormatDescriptorAt(index:int):FormatDescriptor [static] Returns the FormatDescriptor for the index'th format. | TextConverter
|  | getImporter(format:String, config:IConfiguration = null):flashx.textLayout.conversion:ITextImporter [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
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | importToFlow(source:Object, format:String, config:IConfiguration = null):flashx.textLayout.elements:TextFlow [static] Creates a TextFlow from source content in a specified format. | TextConverter
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | removeFormat(format:String):void [static] Remove the format. | TextConverter
|  | removeFormatAt(index:int):void [static] Remove the format at the index location. | TextConverter
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | valueOf():Object Returns the primitive value of the specified object. | Object

Public Constants

| Constant | Defined 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

TEXT_FIELD_HTML_FORMAT
PLAIN_TEXT_FORMAT
TEXT_LAYOUT_FORMAT
flashx.textLayout.conversion.ConversionType

### 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

TEXT_FIELD_HTML_FORMAT
PLAIN_TEXT_FORMAT
TEXT_LAYOUT_FORMAT
Example ( How to use this example )

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

Copy

    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

TEXT_FIELD_HTML_FORMAT
PLAIN_TEXT_FORMAT
TEXT_LAYOUT_FORMAT
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`.

Copy

    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

TEXT_FIELD_HTML_FORMAT
PLAIN_TEXT_FORMAT
TEXT_LAYOUT_FORMAT

### 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

flashx.textLayout.elements.FlowElement.typeName

### 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

Examples How to use this example
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.

Copy

    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;
            }
        }
    }

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00