{ "type": "class",
  "qname": "org.apache.royale.textLayout.formats.TextLayoutFormatBase",
  "baseClassname": ""
  ,
  "members": [
  { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "format",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat properties applied directly to this element. <p>Each element may have properties applied to it as part of its format. Properties applied to this element override properties inherited from the parent. Properties applied to this element will in turn be inherited by element's children if they are not overridden on the child. If no properties are applied to the element, this will be null.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.ITextLayoutFormat"]}  ]},
      { "type": "method",
        "qname": "getStyle",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "*",
          "params": [{ "name": "styleProp", "type": "String"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "columnBreakBefore",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Controls column break before the element. <p>Legal values are BreakStyle.AUTO, BreakStyle.ALWAYS, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BreakStyle.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BreakStyle"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "columnBreakAfter",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Controls column after before the element. <p>Legal values are BreakStyle.AUTO, BreakStyle.ALWAYS, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BreakStyle.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BreakStyle"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "containerBreakBefore",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Controls container break before the element. <p>Legal values are BreakStyle.AUTO, BreakStyle.ALWAYS, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BreakStyle.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BreakStyle"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "containerBreakAfter",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Controls container after before the element. <p>Legal values are BreakStyle.AUTO, BreakStyle.ALWAYS, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BreakStyle.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BreakStyle"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "color",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Color of the text. A hexadecimal number that specifies three 8-bit RGB (red, green, blue) values; for example, 0xFF0000 is red and 0x00FF00 is green. It can also be enum value {BLACK, GREEN, GRAY, BLUE, SILVER, LIME, OLIVE, WHITE, YELLOW, MAROON, NAVY, RED, PURPLE, TEAL, FUCHSIA, AQUA, MAGENTA, CYAN} <p>Legal values as a string are ColorName.BLACK, ColorName.GREEN, ColorName.GRAY, ColorName.BLUE, ColorName.SILVER, ColorName.LIME, ColorName.OLIVE, ColorName.WHITE, ColorName.YELLOW, ColorName.MAROON, ColorName.NAVY, ColorName.RED, ColorName.PURPLE, ColorName.TEAL, ColorName.FUCHSIA, ColorName.AQUA, ColorName.MAGENTA, ColorName.CYAN, FormatValue.INHERIT and uints from 0x0 to 0xffffffff.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.ColorName"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "backgroundColor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Background color of the text (adopts default value if undefined during cascade). Can be either the constant value  <code>BackgroundColor.TRANSPARENT</code>, or a hexadecimal value that specifies the three 8-bit RGB (red, green, blue) values; for example, 0xFF0000 is red and 0x00FF00 is green. <p>Legal values as a string are BackgroundColor.TRANSPARENT, FormatValue.INHERIT and uints from 0x0 to 0xffffffff.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BackgroundColor.TRANSPARENT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BackgroundColor"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "lineThrough",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: If <code>true</code>, applies strikethrough, a line drawn through the middle of the text. <p>Legal values are true, false and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of false.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "textAlpha",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Alpha (transparency) value for the text. A value of 0 is fully transparent, and a value of 1 is fully opaque. Display objects with <code>textAlpha</code> set to 0 are active, even though they are invisible. <p>Legal values are numbers from 0 to 1 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 1.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "backgroundAlpha",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Alpha (transparency) value for the background (adopts default value if undefined during cascade). A value of 0 is fully transparent, and a value of 1 is fully opaque. Display objects with alpha set to 0 are active, even though they are invisible. <p>Legal values are numbers from 0 to 1 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 1.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "fontSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The size of the text in pixels. <p>Legal values are numbers from 1 to 720 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 12.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "xScale",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The horizontal scale of the text as a multiplier. <p>Legal values are numbers from 0.01 to 100 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 1.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "yScale",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The vertical scale of the text as a multiplier. <p>Legal values are numbers from 0.01 to 100 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 1.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "baselineShift",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Amount to shift the baseline from the <code>dominantBaseline</code> value. Units are in pixels, or a percentage of <code>fontSize</code> (in which case, enter a string value, like 140%).  Positive values shift the line up for horizontal text (right for vertical) and negative values shift it down for horizontal (left for vertical). <p>Legal values are BaselineShift.SUPERSCRIPT, BaselineShift.SUBSCRIPT, FormatValue.INHERIT.</p> <p>Legal values as a number are from -1000 to 1000.</p> <p>Legal values as a percent are numbers from -1000 to 1000.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.0.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BaselineShift"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "trackingLeft",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Number in pixels (or percent of <code>fontSize</code>, like 120%) indicating the amount of tracking (manual kerning) to be applied to the left of each character. If kerning is enabled, the <code>trackingLeft</code> value is added to the values in the kerning table for the font. If kerning is disabled, the <code>trackingLeft</code> value is used as a manual kerning value. Supports both positive and negative values. <p>Legal values as a number are from -1000 to 1000.</p> <p>Legal values as a percent are numbers from -1000% to 1000%.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "trackingRight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Number in pixels (or percent of <code>fontSize</code>, like 120%) indicating the amount of tracking (manual kerning) to be applied to the right of each character.  If kerning is enabled, the <code>trackingRight</code> value is added to the values in the kerning table for the font. If kerning is disabled, the <code>trackingRight</code> value is used as a manual kerning value. Supports both positive and negative values. <p>Legal values as a number are from -1000 to 1000.</p> <p>Legal values as a percent are numbers from -1000% to 1000%.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "lineHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Leading controls for the text. The distance from the baseline of the previous or the next line (based on <code>LeadingModel</code>) to the baseline of the current line is equal to the maximum amount of the leading applied to any character in the line. This is either a number or a percent.  If specifying a percent, enter a string value, like 140%.<p><img src='../../../images/textLayout_lineHeight1.jpg' alt='lineHeight1' /><img src='../../../images/textLayout_lineHeight2.jpg' alt='lineHeight2' /></p> <p>Legal values as a number are from -720 to 720.</p> <p>Legal values as a percent are numbers from -1000% to 1000%.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 120%.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "breakOpportunity",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Controls where lines are allowed to break when breaking wrapping text into multiple lines. Set to <code>BreakOpportunity.AUTO</code> to break text normally. Set to <code>BreakOpportunity.NONE</code> to <em>not</em> break the text unless the text would overrun the measure and there are no other places to break the line. Set to <code>BreakOpportunity.ANY</code> to allow the line to break anywhere, rather than just between words. Set to <code>BreakOpportunity.ALL</code> to have each typographic cluster put on a separate line (useful for text on a path). <p>Legal values are BreakOpportunity.ALL, BreakOpportunity.ANY, BreakOpportunity.AUTO, BreakOpportunity.NONE, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of BreakOpportunity.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.BreakOpportunity"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "digitCase",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The type of digit case used for this text. Setting the value to <code>DigitCase.OLD_STYLE</code> approximates lowercase letterforms with varying ascenders and descenders. The figures are proportionally spaced. This style is only available in selected typefaces, most commonly in a supplemental or expert font. The <code>DigitCase.LINING</code> setting has all-cap height and is typically monospaced to line up in charts.<p><img src='../../../images/textLayout_digitcase.gif' alt='digitCase' /></p> <p>Legal values are DigitCase.DEFAULT, DigitCase.LINING, DigitCase.OLD_STYLE, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of DigitCase.DEFAULT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.DigitCase"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "digitWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Type of digit width used for this text. This can be <code>DigitWidth.PROPORTIONAL</code>, which looks best for individual numbers, or <code>DigitWidth.TABULAR</code>, which works best for numbers in tables, charts, and vertical rows.<p><img src='../../../images/textLayout_digitwidth.gif' alt='digitWidth' /></p> <p>Legal values are DigitWidth.DEFAULT, DigitWidth.PROPORTIONAL, DigitWidth.TABULAR, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of DigitWidth.DEFAULT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.DigitWidth"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "dominantBaseline",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies which element baseline snaps to the <code>alignmentBaseline</code> to determine the vertical position of the element on the line. A value of <code>TextBaseline.AUTO</code> selects the dominant baseline based on the <code>locale</code> property of the parent paragraph.  For Japanese and Chinese, the selected baseline value is <code>TextBaseline.IDEOGRAPHIC_CENTER</code>; for all others it is <code>TextBaseline.ROMAN</code>. These baseline choices are determined by the choice of font and the font size.<p><img src='../../../images/textLayout_baselines.jpg' alt='baselines' /></p> <p>Legal values are FormatValue.AUTO, TextBaseline.ROMAN, TextBaseline.ASCENT, TextBaseline.DESCENT, TextBaseline.IDEOGRAPHIC_TOP, TextBaseline.IDEOGRAPHIC_CENTER, TextBaseline.IDEOGRAPHIC_BOTTOM, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.TextBaseline"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "kerning",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Kerning adjusts the pixels between certain character pairs to improve readability. Kerning is supported for all fonts with kerning tables. <p>Legal values are Kerning.ON, Kerning.OFF, Kerning.AUTO, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of Kerning.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.Kerning"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "ligatureLevel",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Controls which of the ligatures that are defined in the font may be used in the text. The ligatures that appear for each of these settings is dependent on the font. A ligature occurs where two or more letter-forms are joined as a single glyph. Ligatures usually replace consecutive characters sharing common components, such as the letter pairs 'fi', 'fl', or 'ae'. They are used with both Latin and Non-Latin character sets. The ligatures enabled by the values of the LigatureLevel class - <code>MINIMUM</code>, <code>COMMON</code>, <code>UNCOMMON</code>, and <code>EXOTIC</code> - are additive. Each value enables a new set of ligatures, but also includes those of the previous types.<p><b>Note: </b>When working with Arabic or Syriac fonts, <code>ligatureLevel</code> must be set to MINIMUM or above.</p><p><img src='../../../images/textLayout_ligatures.png' alt='ligatureLevel' /></p> <p>Legal values are LigatureLevel.MINIMUM, LigatureLevel.COMMON, LigatureLevel.UNCOMMON, LigatureLevel.EXOTIC, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of LigatureLevel.COMMON.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.LigatureLevel"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "alignmentBaseline",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the baseline to which the dominant baseline aligns. For example, if you set <code>dominantBaseline</code> to ASCENT, setting <code>alignmentBaseline</code> to DESCENT aligns the top of the text with the DESCENT baseline, or below the line.  The largest element in the line generally determines the baselines.<p><img src='../../../images/textLayout_baselines.jpg' alt='baselines' /></p> <p>Legal values are TextBaseline.ROMAN, TextBaseline.ASCENT, TextBaseline.DESCENT, TextBaseline.IDEOGRAPHIC_TOP, TextBaseline.IDEOGRAPHIC_CENTER, TextBaseline.IDEOGRAPHIC_BOTTOM, TextBaseline.USE_DOMINANT_BASELINE, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of TextBaseline.USE_DOMINANT_BASELINE.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.TextBaseline"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "locale",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The locale of the text. Controls case transformations and shaping. Standard locale identifiers as described in Unicode Technical Standard #35 are used. For example en, en_US and en-US are all English, ja is Japanese. <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of en.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "typographicCase",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The type of typographic case used for this text. Here are some examples:<p><img src='../../../images/textLayout_typographiccase.png' alt='typographicCase' /></p> <p>Legal values are TLFTypographicCase.DEFAULT, TLFTypographicCase.CAPS_TO_SMALL_CAPS, TLFTypographicCase.UPPERCASE, TLFTypographicCase.LOWERCASE, TLFTypographicCase.LOWERCASE_TO_SMALL_CAPS, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of TLFTypographicCase.DEFAULT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TLFTypographicCase"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "fontFamily",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The name of the font to use, or a comma-separated list of font names. The Flash runtime renders the element with the first available font in the list. For example Arial, Helvetica, _sans causes the player to search for Arial, then Helvetica if Arial is not found, then _sans if neither is found. <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of Arial.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "textDecoration",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Decoration on text. Use to apply underlining; default is none. <p>Legal values are TextDecoration.NONE, TextDecoration.UNDERLINE, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of TextDecoration.NONE.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TextDecoration"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "fontStyle",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Style of text. <p>Legal values style names specified byt the font.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of &quot;Regular&quot;.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.FontPosture"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "whiteSpaceCollapse",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Collapses or preserves whitespace when importing text into a TextFlow. <code>WhiteSpaceCollapse.PRESERVE</code> retains all whitespace characters. <code>WhiteSpaceCollapse.COLLAPSE</code> removes newlines, tabs, and leading or trailing spaces within a block of imported text. Line break tags (<br/>) and Unicode line separator characters are retained. <p>Legal values are WhiteSpaceCollapse.PRESERVE, WhiteSpaceCollapse.COLLAPSE, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of WhiteSpaceCollapse.COLLAPSE.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.WhiteSpaceCollapse"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "renderingMode",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The rendering mode used for this text.  Applies only to embedded fonts (<code>fontLookup</code> property is set to <code>FontLookup.EMBEDDED_CFF</code>). <p>Legal values are RenderingMode.NORMAL, RenderingMode.CFF, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of RenderingMode.CFF.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.RenderingMode"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "cffHinting",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The type of CFF hinting used for this text. CFF hinting determines whether the Flash runtime forces strong horizontal stems to fit to a sub pixel grid or not. This property applies only if the <code>renderingMode</code> property is set to <code>RenderingMode.CFF</code>, and the font is embedded (<code>fontLookup</code> property is set to <code>FontLookup.EMBEDDED_CFF</code>). At small screen sizes, hinting produces a clear, legible text for human readers. <p>Legal values are CFFHinting.NONE, CFFHinting.HORIZONTAL_STEM, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of CFFHinting.HORIZONTAL_STEM.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.CFFHinting"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "fontLookup",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Font lookup to use. Specifying <code>FontLookup.DEVICE</code> uses the fonts installed on the system that is running the SWF file. Device fonts result in a smaller movie size, but text is not always rendered the same across different systems and platforms. Specifying <code>FontLookup.EMBEDDED_CFF</code> uses font outlines embedded in the published SWF file. Embedded fonts increase the size of the SWF file (sometimes dramatically), but text is consistently displayed in the chosen font. <p>Legal values are FontLookup.DEVICE, FontLookup.EMBEDDED_CFF, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of FontLookup.DEVICE.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.FontLookup"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "textRotation",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Determines the number of degrees to rotate this text. <p>Legal values are TextRotation.ROTATE_0, TextRotation.ROTATE_180, TextRotation.ROTATE_270, TextRotation.ROTATE_90, TextRotation.AUTO, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of TextRotation.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.TextRotation"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "textIndent",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: A Number that specifies, in pixels, the amount to indent the first line of the paragraph. A negative indent will push the line into the margin, and possibly out of the container. <p>Legal values are numbers from -8000 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "paragraphStartIndent",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: A Number that specifies, in pixels, the amount to indent the paragraph's start edge. Refers to the left edge in left-to-right text and the right edge in right-to-left text. <p>Legal values are numbers from 0 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "paragraphEndIndent",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: A Number that specifies, in pixels, the amount to indent the paragraph's end edge. Refers to the right edge in left-to-right text and the left edge in right-to-left text. <p>Legal values are numbers from 0 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "paragraphSpaceBefore",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: A Number that specifies the amount of space, in pixels, to leave before the paragraph. Collapses in tandem with <code>paragraphSpaceAfter</code>. <p>Legal values are numbers from 0 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "paragraphSpaceAfter",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: A Number that specifies the amount of space, in pixels, to leave after the paragraph. Collapses in tandem with  <code>paragraphSpaceBefore</code>. <p>Legal values are numbers from 0 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "textAlign",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Alignment of lines in the paragraph relative to the container. <code>TextAlign.LEFT</code> aligns lines along the left edge of the container. <code>TextAlign.RIGHT</code> aligns on the right edge. <code>TextAlign.CENTER</code> positions the line equidistant from the left and right edges. <code>TextAlign.JUSTIFY</code> spreads the lines out so they fill the space. <code>TextAlign.START</code> is equivalent to setting left in left-to-right text, or right in right-to-left text. <code>TextAlign.END</code> is equivalent to setting right in left-to-right text, or left in right-to-left text. <p>Legal values are TextAlign.LEFT, TextAlign.RIGHT, TextAlign.CENTER, TextAlign.JUSTIFY, TextAlign.START, TextAlign.END, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of TextAlign.START.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TextAlign"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "textAlignLast",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Alignment of the last (or only) line in the paragraph relative to the container in justified text. If <code>textAlign</code> is set to <code>TextAlign.JUSTIFY</code>, <code>textAlignLast</code> specifies how the last line (or only line, if this is a one line block) is aligned. Values are similar to <code>textAlign</code>. <p>Legal values are TextAlign.LEFT, TextAlign.RIGHT, TextAlign.CENTER, TextAlign.JUSTIFY, TextAlign.START, TextAlign.END, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of TextAlign.START.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TextAlign"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "textJustify",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies options for justifying text. Default value is <code>TextJustify.INTER_WORD</code>, meaning that extra space is added to the space characters. <code>TextJustify.DISTRIBUTE</code> adds extra space to space characters and between individual letters. Used only in conjunction with a <code>justificationRule</code> value of <code>JustificationRule.SPACE</code>. <p>Legal values are TextJustify.INTER_WORD, TextJustify.DISTRIBUTE, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of TextJustify.INTER_WORD.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TextJustify"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "justificationRule",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Rule used to justify text in a paragraph. Default value is <code>FormatValue.AUTO</code>, which justifies text based on the paragraph's <code>locale</code> property. For all languages except Japanese and Chinese, <code>FormatValue.AUTO</code> becomes <code>JustificationRule.SPACE</code>, which adds extra space to the space characters.  For Japanese and Chinese, <code>FormatValue.AUTO</code> becomes <code>JustficationRule.EAST_ASIAN</code>. In part, justification changes the spacing of punctuation. In Roman text the comma and Japanese periods take a full character's width but in East Asian text only half of a character's width. Also, in the East Asian text the spacing between sequential punctuation marks becomes tighter, obeying traditional East Asian typographic conventions. Note, too, in the example below the leading that is applied to the second line of the paragraphs. In the East Asian version, the last two lines push left. In the Roman version, the second and following lines push left.<p><img src='../../../images/textLayout_justificationrule.png' alt='justificationRule' /></p> <p>Legal values are JustificationRule.EAST_ASIAN, JustificationRule.SPACE, FormatValue.AUTO, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.JustificationRule"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "justificationStyle",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: The style used for justification of the paragraph. Used only in conjunction with a <code>justificationRule</code> setting of <code>JustificationRule.EAST_ASIAN</code>. Default value of <code>FormatValue.AUTO</code> is resolved to <code>JustificationStyle.PUSH_IN_KINSOKU</code> for all locales.  The constants defined by the JustificationStyle class specify options for handling kinsoku characters, which are Japanese characters that cannot appear at either the beginning or end of a line. If you want looser text, specify <code>JustificationStyle.PUSH-OUT-ONLY</code>. If you want behavior that is like what you get with the  <code>justificationRule</code> of <code>JustificationRule.SPACE</code>, use <code>JustificationStyle.PRIORITIZE-LEAST-ADJUSTMENT</code>. <p>Legal values are JustificationStyle.PRIORITIZE_LEAST_ADJUSTMENT, JustificationStyle.PUSH_IN_KINSOKU, JustificationStyle.PUSH_OUT_ONLY, FormatValue.AUTO, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.JustificationStyle"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "direction",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the default bidirectional embedding level of the text in the text block. Left-to-right reading order, as in Latin-style scripts, or right-to-left reading order, as in Arabic or Hebrew. This property also affects column direction when it is applied at the container level. Columns can be either left-to-right or right-to-left, just like text. Below are some examples:<p><img src='../../../images/textLayout_direction.gif' alt='direction' /></p> <p>Legal values are Direction.LTR, Direction.RTL, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of Direction.LTR.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.Direction"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "wordSpacing",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the optimum, minimum, and maximum spacing (as a multiplier of the width of a normal space) between words to use during justification. The optimum space is used to indicate the desired size of a space, as a fraction of the value defined in the font. The minimum and maximum values are the used when textJustify is distribute to determine how wide or narrow the spaces between the words may grow before letter spacing is used to justify the line. <p>Legal values as a percent are numbers from -1000% to 1000%.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 100%, 50%, 150%.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "tabStops",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the tab stops associated with the paragraph. Setters can take an array of TabStopFormat, a condensed string representation, undefined, or <code>FormatValue.INHERIT</code>. The condensed string representation is always converted into an array of TabStopFormat. <p>The string-based format is a list of tab stops, where each tab stop is delimited by one or more spaces.</p><p>A tab stop takes the following form: &lt;alignment type&gt;&lt;alignment position&gt;|&lt;alignment token&gt;.</p><p>The alignment type is a single character, and can be S, E, C, or D (or lower-case equivalents). S or s for start, E or e for end, C or c for center, D or d for decimal. The alignment type is optional, and if its not specified will default to S.</p><p>The alignment position is a Number, and is specified according to FXG spec for Numbers (decimal or scientific notation). The alignment position is required.</p><p>The vertical bar is used to separate the alignment position from the alignment token, and should only be present if the alignment token is present.</p><p> The alignment token is optional if the alignment type is D, and should not be present if the alignment type is anything other than D. The alignment token may be any sequence of characters terminated by the space that ends the tab stop (for the last tab stop, the terminating space is optional; end of alignment token is implied). A space may be part of the alignment token if it is escaped with a backslash (\\ ). A backslash may be part of the alignment token if it is escaped with another backslash (\\\\). If the alignment type is D, and the alignment token is not specified, it will take on the default value of null.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of null.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TabStopFormat"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "leadingModel",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the leading model, which is a combination of leading basis and leading direction. Leading basis is the baseline to which the <code>lineHeight</code> property refers. Leading direction determines whether the <code>lineHeight</code> property refers to the distance of a line's baseline from that of the line before it or the line after it. The default value of <code>FormatValue.AUTO</code> is resolved based on the paragraph's <code>locale</code> property.  For Japanese and Chinese, it is <code>LeadingModel.IDEOGRAPHIC_TOP_DOWN</code> and for all others it is <code>LeadingModel.ROMAN_UP</code>.<p><strong>Leading Basis:</strong></p><p><img src='../../../images/textLayout_LB1.png' alt='leadingBasis1' />    <img src='../../../images/textLayout_LB2.png' alt='leadingBasis2' />    <img src='../../../images/textLayout_LB3.png' alt='leadingBasis3' /></p><p><strong>Leading Direction:</strong></p><p><img src='../../../images/textLayout_LD1.png' alt='leadingDirection1' />    <img src='../../../images/textLayout_LD2.png' alt='leadingDirection2' />    <img src='../../../images/textLayout_LD3.png' alt='leadingDirection3' /></p> <p>Legal values are LeadingModel.ROMAN_UP, LeadingModel.IDEOGRAPHIC_TOP_UP, LeadingModel.IDEOGRAPHIC_CENTER_UP, LeadingModel.IDEOGRAPHIC_TOP_DOWN, LeadingModel.IDEOGRAPHIC_CENTER_DOWN, LeadingModel.APPROXIMATE_TEXT_FIELD, LeadingModel.ASCENT_DESCENT_UP, LeadingModel.BOX, LeadingModel.AUTO, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of LeadingModel.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.LeadingModel"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "columnGap",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the amount of gutter space, in pixels, to leave between the columns (adopts default value if undefined during cascade). Value is a Number <p>Legal values are numbers from 0 to 1000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 20.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "paddingLeft",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Left inset in pixels.  Default of auto is zero except in lists which get a start side padding of 45. (adopts default value if undefined during cascade). Space between the left edge of the container and the text.  Value is a Number or auto.<p> With vertical text, in scrollable containers with multiple columns, the first and following columns will show the padding as blank space at the end of the container, but for the last column, if the text doesn't all fit, you may have to scroll in order to see the padding.</p> <p>Legal values as a string are FormatValue.AUTO, FormatValue.INHERIT and numbers from -8000 to 8000.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.elements.Configuration#autoListElementStartPadding", "org.apache.royale.textLayout.formats.FormatValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "paddingTop",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Top inset in pixels.  Default of auto is zero except in lists which get a start side padding of 45. (adopts default value if undefined during cascade). Space between the top edge of the container and the text.  Value is a Number or auto. <p>Legal values as a string are FormatValue.AUTO, FormatValue.INHERIT and numbers from -8000 to 8000.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.elements.Configuration#autoListElementStartPadding", "org.apache.royale.textLayout.formats.FormatValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "paddingRight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Right inset in pixels.  Default of auto is zero except in lists which get a start side padding of 45. (adopts default value if undefined during cascade). Space between the right edge of the container and the text.  Value is a Number or auto. <p>Legal values as a string are FormatValue.AUTO, FormatValue.INHERIT and numbers from -8000 to 8000.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.elements.Configuration#autoListElementStartPadding", "org.apache.royale.textLayout.formats.FormatValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "paddingBottom",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Bottom inset in pixels.  Default of auto is zero except in lists which get a start side padding of 45.  (adopts default value if undefined during cascade). Space between the bottom edge of the container and the text.  Value is a Number  or auto. <p> With horizontal text, in scrollable containers with multiple columns, the first and following columns will show the padding as blank space at the bottom of the container, but for the last column, if the text doesn't all fit, you may have to scroll in order to see the padding.</p> <p>Legal values as a string are FormatValue.AUTO, FormatValue.INHERIT and numbers from -8000 to 8000.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.elements.Configuration#autoListElementStartPadding", "org.apache.royale.textLayout.formats.FormatValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "columnCount",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Number of text columns (adopts default value if undefined during cascade). The column number overrides the  other column settings. Value is an integer, or <code>FormatValue.AUTO</code> if unspecified. If <code>columnCount</code> is not specified,<code>columnWidth</code> is used to create as many columns as can fit in the container. <p>Legal values as a string are FormatValue.AUTO, FormatValue.INHERIT and from ints from 1 to 50.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.FormatValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "columnWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Column width in pixels (adopts default value if undefined during cascade). If you specify the width of the columns, but not the count, TextLayout will create as many columns of that width as possible, given the  container width and <code>columnGap</code> settings. Any remainder space is left after the last column. Value is a Number. <p>Legal values as a string are FormatValue.AUTO, FormatValue.INHERIT and numbers from 0 to 8000.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of FormatValue.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.FormatValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "firstBaselineOffset",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the baseline position of the first line in the container. Which baseline this property refers to depends on the container-level locale.  For Japanese and Chinese, it is <code>TextBaseline.IDEOGRAPHIC_BOTTOM</code>; for all others it is <code>TextBaseline.ROMAN</code>. The offset from the top inset (or right inset if <code>blockProgression</code> is RL) of the container to the baseline of the first line can be either <code>BaselineOffset.ASCENT</code>, meaning equal to the ascent of the line, <code>BaselineOffset.LINE_HEIGHT</code>, meaning equal to the height of that first line, or any fixed-value number to specify an absolute distance. <code>BaselineOffset.AUTO</code> aligns the ascent of the line with the container top inset.<p><img src='../../../images/textLayout_FBO1.png' alt='firstBaselineOffset1' /><img src='../../../images/textLayout_FBO2.png' alt='firstBaselineOffset2' /><img src='../../../images/textLayout_FBO3.png' alt='firstBaselineOffset3' /><img src='../../../images/textLayout_FBO4.png' alt='firstBaselineOffset4' /></p> <p>Legal values as a string are BaselineOffset.AUTO, BaselineOffset.ASCENT, BaselineOffset.LINE_HEIGHT, FormatValue.INHERIT and numbers from 0 to 1000.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of BaselineOffset.AUTO.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BaselineOffset"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "verticalAlign",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Vertical alignment or justification (adopts default value if undefined during cascade). Determines how TextFlow elements align within the container. <p>Legal values are VerticalAlign.TOP, VerticalAlign.MIDDLE, VerticalAlign.BOTTOM, VerticalAlign.JUSTIFY, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of VerticalAlign.TOP.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.VerticalAlign"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "blockProgression",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies a vertical or horizontal progression of line placement. Lines are either placed top-to-bottom (<code>BlockProgression.TB</code>, used for horizontal text) or right-to-left (<code>BlockProgression.RL</code>, used for vertical text). <p>Legal values are BlockProgression.RL, BlockProgression.TB, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of BlockProgression.TB.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BlockProgression"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "lineBreak",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Controls word wrapping within the container (adopts default value if undefined during cascade). Text in the container may be set to fit the width of the container (<code>LineBreak.TO_FIT</code>), or can be set to break only at explicit return or line feed characters (<code>LineBreak.EXPLICIT</code>). <p>Legal values are LineBreak.EXPLICIT, LineBreak.TO_FIT, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of LineBreak.TO_FIT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.LineBreak"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "listStyleType",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: <p>Legal values are ListStyleType.UPPER_ALPHA, ListStyleType.LOWER_ALPHA, ListStyleType.UPPER_ROMAN, ListStyleType.LOWER_ROMAN, ListStyleType.NONE, ListStyleType.DISC, ListStyleType.CIRCLE, ListStyleType.SQUARE, ListStyleType.BOX, ListStyleType.CHECK, ListStyleType.DIAMOND, ListStyleType.HYPHEN, ListStyleType.ARABIC_INDIC, ListStyleType.BENGALI, ListStyleType.DECIMAL, ListStyleType.DECIMAL_LEADING_ZERO, ListStyleType.DEVANAGARI, ListStyleType.GUJARATI, ListStyleType.GURMUKHI, ListStyleType.KANNADA, ListStyleType.PERSIAN, ListStyleType.THAI, ListStyleType.URDU, ListStyleType.CJK_EARTHLY_BRANCH, ListStyleType.CJK_HEAVENLY_STEM, ListStyleType.HANGUL, ListStyleType.HANGUL_CONSTANT, ListStyleType.HIRAGANA, ListStyleType.HIRAGANA_IROHA, ListStyleType.KATAKANA, ListStyleType.KATAKANA_IROHA, ListStyleType.LOWER_ALPHA, ListStyleType.LOWER_GREEK, ListStyleType.LOWER_LATIN, ListStyleType.UPPER_ALPHA, ListStyleType.UPPER_GREEK, ListStyleType.UPPER_LATIN, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of ListStyleType.DISC.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.ListStyleType"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "listStylePosition",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: <p>Legal values are ListStylePosition.INSIDE, ListStylePosition.OUTSIDE, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of ListStylePosition.OUTSIDE.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.ListStylePosition"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "listAutoPadding",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: This specifies an auto indent for the start edge of lists when the padding value of the list on that side is <code>auto</code>. <p>Legal values are numbers from -1000 to 1000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 40.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "clearFloats",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Controls how text wraps around a float. A value of none allows the text to wrap most closely around a float. A value of left causes the text to skip over any portion of the container that has a left float, and a value of right causes the text to skip over any portion of the container that has a right float. A value of both causes the text to skip over any floats. <p>Legal values are ClearFloats.START, ClearFloats.END, ClearFloats.LEFT, ClearFloats.RIGHT, ClearFloats.BOTH, ClearFloats.NONE, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of ClearFloats.NONE.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.ClearFloats", "org.apache.royale.textLayout.formats.ClearFloats"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "styleName",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Assigns an identifying class to the element, making it possible to set a style for the element by referencing the <code>styleName</code>. <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of null.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "linkNormalFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Defines the formatting attributes used for links in normal state. This value will cascade down the hierarchy and apply to any links that are descendants. Accepts <code>inherit</code>, an <code>ITextLayoutFormat</code> or converts an array of objects with key and value as members to a TextLayoutFormat. <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of null.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "linkActiveFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Defines the formatting attributes used for links in normal state. This value will cascade down the hierarchy and apply to any links that are descendants. Accepts <code>inherit</code>, an <code>ITextLayoutFormat</code> or converts an array of objects with key and value as members to a TextLayoutFormat. <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of null.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "linkHoverFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Defines the formatting attributes used for links in hover state, when the mouse is within the bounds (rolling over) a link. This value will cascade down the hierarchy and apply to any links that are descendants. Accepts <code>inherit</code>, an <code>ITextLayoutFormat</code> or converts an array of objects with key and value as members to a TextLayoutFormat. <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of null.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "listMarkerFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Defines the formatting attributes list markers. This value will cascade down the hierarchy and apply to any links that are descendants. Accepts <code>inherit</code>, an <code>IListMarkerFormat</code> or converts an array of objects with key and value as members to a ListMarkerFormat. <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of null.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderLeftWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Left border width in pixels (adopts default value if undefined during cascade) <p>Legal values are numbers from 0 to 128 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderRightWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Right border width in pixels (adopts default value if undefined during cascade) <p>Legal values are numbers from 0 to 128 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderTopWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Top border width in pixels (adopts default value if undefined during cascade) <p>Legal values are numbers from 0 to 128 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderBottomWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Bottom border width in pixels (adopts default value if undefined during cascade) <p>Legal values are numbers from 0 to 128 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderLeftColor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Color of the left border (adopts default value if undefined during cascade). Can be either the constant value <code>BorderColor.TRANSPARENT</code>, or a hexadecimal value that specifies the three 8-bit RGB (red, green, blue) values; for example, 0xFF0000 is red and 0x00FF00 is green. <p>Legal values as a string are BorderColor.TRANSPARENT, FormatValue.INHERIT and uints from 0x0 to 0xffffffff.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BorderColor.TRANSPARENT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BorderColor"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderRightColor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Color of the right border (adopts default value if undefined during cascade). Can be either the constant value <code>BorderColor.TRANSPARENT</code>, or a hexadecimal value that specifies the three 8-bit RGB (red, green, blue) values; for example, 0xFF0000 is red and 0x00FF00 is green. <p>Legal values as a string are BorderColor.TRANSPARENT, FormatValue.INHERIT and uints from 0x0 to 0xffffffff.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BorderColor.TRANSPARENT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BorderColor"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderTopColor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Color of the top border (adopts default value if undefined during cascade). Can be either the constant value <code>BorderColor.TRANSPARENT</code>, or a hexadecimal value that specifies the three 8-bit RGB (red, green, blue) values; for example, 0xFF0000 is red and 0x00FF00 is green. <p>Legal values as a string are BorderColor.TRANSPARENT, FormatValue.INHERIT and uints from 0x0 to 0xffffffff.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BorderColor.TRANSPARENT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BorderColor"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderBottomColor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Color of the bottom border (adopts default value if undefined during cascade). Can be either the constant value <code>BorderColor.TRANSPARENT</code>, or a hexadecimal value that specifies the three 8-bit RGB (red, green, blue) values; for example, 0xFF0000 is red and 0x00FF00 is green. <p>Legal values as a string are BorderColor.TRANSPARENT, FormatValue.INHERIT and uints from 0x0 to 0xffffffff.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of BorderColor.TRANSPARENT.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.BorderColor"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderLeftPriority",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the priority when drawing cell boundaries. When settings between two adjacent cells conflict, the border with the higher priority wins. If the priorities are equal, the latter of the two cells takes priority. <p>Legal values are any rational number. Conflicts are resolved with the properties of the higher number being drawn.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit, and default to 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderRightPriority",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the priority when drawing cell boundaries. When settings between two adjacent cells conflict, the border with the higher priority wins. If the priorities are equal, the latter of the two cells takes priority. <p>Legal values are any rational number. Conflicts are resolved with the properties of the higher number being drawn.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit, and default to 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderTopPriority",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the priority when drawing cell boundaries. When settings between two adjacent cells conflict, the border with the higher priority wins. If the priorities are equal, the latter of the two cells takes priority. <p>Legal values are any rational number. Conflicts are resolved with the properties of the higher number being drawn.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit, and default to 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "borderBottomPriority",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Specifies the priority when drawing cell boundaries. When settings between two adjacent cells conflict, the border with the higher priority wins. If the priorities are equal, the latter of the two cells takes priority. <p>Legal values are any rational number. Conflicts are resolved with the properties of the higher number being drawn.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit, and default to 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "marginLeft",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: left margin in pixels(adopts default value if undefined during cascade). <p>Legal values are numbers from -8000 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "marginRight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: right margin in pixels (adopts default value if undefined during cascade). <p>Legal values are numbers from -8000 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "marginTop",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: top margin in pixels (adopts default value if undefined during cascade). <p>Legal values are numbers from -8000 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "marginBottom",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: bottom margin in pixels (adopts default value if undefined during cascade). <p>Legal values are numbers from -8000 to 8000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "cellSpacing",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: cellSpacing specifies how much space the user agent should leave between the left side of the table and the left-hand side of the leftmost column, the top of the table and the top side of the topmost row, and so on for the right and bottom of the table. The attribute also specifies the amount of space to leave between cells. <p>Legal values are numbers from 0 to 1000 and FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "cellPadding",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: cellPadding specifies the amount of space between the border of the cell and its contents. If the value of this attribute is a pixel length, all four margins should be this distance from the contents. If the value of the attribute is a percentage length, the top and bottom margins should be equally separated from the content based on a percentage of the available vertical space, and the left and right margins should be equally separated from the content based on a percentage of the available horizontal space. <p>Legal values as a number are from 0 to 1000.</p> <p>Legal values as a percent are numbers from 0% to 100%.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will inherit its value from an ancestor. If no ancestor has set this property, it will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "tableWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Width of table element specifies the desired width of the entire table and is intended for visual user agents. When the value is a percentage value, the value is relative to the user agent's available horizontal space. <p>Legal values as a number are from 0 to 8000.</p> <p>Legal values as a percent are numbers from 0% to 100%.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 100%.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "tableColumnWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Width of table column specifies a default width for each column spanned by the current COL element. <p>Legal values as a number are from 0 to 8000.</p> <p>Legal values as a percent are numbers from 0% to 100%.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 0.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "minCellHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Minimum height of a table cell. If there is no maximum, the cell will grow in height to fit the content. Minimum and maximum of the same values will give the cell a fixed height. <p>Legal values as a number are from 2 to 10000.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 2.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "maxCellHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: Maximum height of a table cell. If there is no maximum, the cell will grow in height to fit the content. Minimum and maximum of the same values will give the cell a fixed height. <p>Legal values as a number are from 2 to 10000.</p> <p>Legal values include FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of 2.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "frame",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: frame specifies which sides of the frame surrounding a table will be visible. Possible values: <p>Legal values are TableFrame.VOID, TableFrame.ABOVE, TableFrame.BELOW, TableFrame.HSIDES, TableFrame.VSIDES, TableFrame.LHS, TableFrame.RHS, TableFrame.BOX, TableFrame.BORDER, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of TableFrame.VOID.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TableFrame"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "rules",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "TextLayoutFormat: rules specifies which rules will appear between cells within a table. The rendering of rules is user agent dependent. Possible values: <p>Legal values are TableRules.NONE, TableRules.GROUPS, TableRules.ROWS, TableRules.COLS, TableRules.ALL, FormatValue.INHERIT.</p> <p>Default value is undefined indicating not set.</p> <p>If undefined during the cascade this property will have a value of TableRules.NONE.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TableRules"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError when set value is not within range for this property"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  }
