{ "type": "class",
  "qname": "org.apache.royale.textLayout.elements.FlowLeafElement",
  "baseClassname": "org.apache.royale.textLayout.elements.FlowElement"
  ,
    "description": "Base class for FlowElements that appear at the lowest level of the flow hierarchy. FlowLeafElement objects have no children and include InlineGraphicElement objects and SpanElement objects.",
  "tags": [
  {  "tagName": "see",
         "values": ["InlineGraphicElement", "SpanElement"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "org.apache.royale.textLayout.elements.FlowLeafElement",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Base class - invoking new FlowLeafElement() throws an error exception.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "String",
        "qname": "className",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "text",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The text associated with the FlowLeafElement: <p><ul> <li>The value for SpanElement subclass will be one character less than <code>textLength</code> if this is the last span in a ParagraphELement.</li> <li>The value for BreakElement subclass is a U+2028</li> <li>The value for TabElement subclass is a tab</li> <li>The value for InlineGraphicElement subclass is U+FDEF</li> </ul></p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.elements.SpanElement#replaceText()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "getNextLeaf",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the next FlowLeafElement object.  means search till no more elements.",
        "tags": [
        {  "tagName": "param",
               "values": ["limitElement Specifies FlowGroupElement on whose last leaf to stop looking. A value of null (default)"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["next FlowLeafElement or null if at the end"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowLeafElement",
          "params": [{ "name": "limitElement", "type": "org.apache.royale.textLayout.elements.IFlowGroupElement"}]}
      ,
      { "type": "method",
        "qname": "getPreviousLeaf",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the previous FlowLeafElement object.",
        "tags": [
        {  "tagName": "param",
               "values": ["limitElement Specifies the FlowGroupElement on whose first leaf to stop looking.   null (default) means search till no more elements."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["previous leafElement or null if at the end"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowLeafElement",
          "params": [{ "name": "limitElement", "type": "org.apache.royale.textLayout.elements.IFlowGroupElement"}]}
      ,
      { "type": "method",
        "qname": "getComputedFontMetrics",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the FontMetrics object for the span. The properties of the FontMetrics object describe the emBox, strikethrough position, strikethrough thickness, underline position, and underline thickness for the specified font.",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.text.engine.FontMetrics", "org.apache.royale.text.engine.ElementFormat#getFontMetrics()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["font metrics associated with the span"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.text.engine.FontMetrics",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "computedFormat",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "The computed text format attributes that are in effect for this element. Takes into account the inheritance of attributes.",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.ITextLayoutFormat"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "getEffectiveFontSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the fontSize from this element's properties. We multiply by yScale because the important dimension of the font size is the vertical size.",
          "return": "Number",
          "params": []}
      ]
  }
