{ "type": "class",
  "qname": "org.apache.royale.textLayout.elements.FlowElement",
  "baseClassname": "org.apache.royale.textLayout.formats.TextLayoutFormatBase"
  ,
    "description": "The text in a flow is stored in tree form with the elements of the tree representing logical divisions within the text. The FlowElement class is the abstract base class of all the objects in this tree. FlowElement objects represent paragraphs, spans of text within paragraphs, and groups of paragraphs.  <p>The root of a composable FlowElement tree is always a TextFlow object. Leaf elements of the tree are always subclasses of the FlowLeafElement class. All leaves arranged in a composable TextFlow have a ParagraphElement ancestor. </p>  <p>You cannot create a FlowElement object directly. Invoking <code>new FlowElement()</code> throws an error exception.</p>",
  "tags": [
  {  "tagName": "see",
         "values": ["IFlowGroupElement", "FlowLeafElement", "InlineGraphicElement", "ParagraphElement", "SpanElement", "TextFlow"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "org.apache.royale.textLayout.elements.FlowElement",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Base class - invoking <code>new FlowElement()</code> 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": [],
        "deprecated": {}},
      { "type": "method",
        "qname": "initialized",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Called for MXML objects after the implementing object has been created and all component properties specified on the MXML tag have been initialized.",
        "tags": [
        {  "tagName": "param",
               "values": ["document The MXML document that created the object.", "id The identifier used by document to refer to this object."]}  ],
          "return": "void",
          "params": [{ "name": "document", "type": "Object"},
        { "name": "id", "type": "String"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Boolean",
        "qname": "abstract",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns true if the class is an abstract base class, false if its OK to construct. Attempting to instantiate an abstract FlowElement class will cause an exception.",
        "tags": [
        {  "tagName": "private",
               "values": []},
            {  "tagName": "return",
               "values": ["Boolean  true if this is an abstract class"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "userStyles",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Allows you to read and write user styles on a FlowElement object.  Note that reading this property makes a copy of the userStyles set in the format of this element.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "setBorderWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "void",
          "params": [{ "name": "width", "type": "Number"}]}
      ,
      { "type": "method",
        "qname": "setBorderColor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "void",
          "params": [{ "name": "color", "type": "uint"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Object",
        "qname": "coreStyles",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the <code>coreStyles</code> on this FlowElement.  Note that the getter makes a copy of the core styles dictionary. The coreStyles object encapsulates the formats that are defined by TextLayoutFormat and are in TextLayoutFormat.description. The <code>coreStyles</code> object consists of an array of <em>stylename-value</em> pairs.",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TextLayoutFormat"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "Object",
        "qname": "styles",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the styles on this FlowElement.  Note that the getter makes a copy of the styles dictionary. The returned object encapsulates all styles set in the format property including core and user styles. The returned object consists of an array of <em>stylename-value</em> pairs.",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.TextLayoutFormat"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "equalUserStyles",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Compare the userStyles of this with otherElement's userStyles.",
        "tags": [
        {  "tagName": "see",
               "values": ["#getStyle()", "#setStyle()", "#userStyles"]},
            {  "tagName": "param",
               "values": ["otherElement the FlowElement object with which to compare user styles"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["true if the user styles are equal; false otherwise."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Boolean",
          "params": [{ "name": "otherElement", "type": "org.apache.royale.textLayout.elements.IFlowElement"}]}
      ,
      { "type": "method",
        "qname": "shallowCopy",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Makes a copy of this FlowElement object, copying the content between two specified character positions. It returns the copy as a new FlowElement object. Unlike <code>deepCopy()</code>, <code>shallowCopy()</code> does not copy any of the children of this FlowElement object.  <p>With no arguments, <code>shallowCopy()</code> defaults to copying all of the content.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["#deepCopy()"]},
            {  "tagName": "param",
               "values": ["relativeStart The relative text position of the first character to copy. First position is 0.", "relativeEnd The relative text position of the last character to copy. A value of -1 indicates copy to end."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the object created by the copy operation."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": [{ "name": "relativeStart", "type": "int"},
        { "name": "relativeEnd", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "deepCopy",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Makes a deep copy of this FlowElement object, including any children, copying the content between the two specified character positions and returning the copy as a FlowElement object.  <p>With no arguments, <code>deepCopy()</code> defaults to copying the entire element.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["#shallowCopy()"]},
            {  "tagName": "param",
               "values": ["relativeStart relative text position of the first character to copy. First position is 0.", "relativeEnd relative text position of the last character to copy. A value of -1 indicates copy to end."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the object created by the deep copy operation."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": [{ "name": "relativeStart", "type": "int"},
        { "name": "relativeEnd", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "getText",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Gets the specified range of text from a flow element.",
        "tags": [
        {  "tagName": "param",
               "values": ["relativeStart The starting position of the range of text to be retrieved, relative to the start of the FlowElement", "relativeEnd The ending position of the range of text to be retrieved, relative to the start of the FlowElement, -1 for up to the end of the element", "paragraphSeparator character to put between paragraphs"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["The requested text."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": [{ "name": "relativeStart", "type": "int"},
        { "name": "relativeEnd", "type": "int"},
        { "name": "paragraphSeparator", "type": "String"}]}
      ,
      { "type": "method",
        "qname": "splitAtPosition",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Splits this FlowElement object at the position specified by the <code>relativePosition</code> parameter, which is a relative position in the text for this element. This method splits only SpanElement and IFlowGroupElement objects.",
        "tags": [
        {  "tagName": "param",
               "values": ["relativePosition the position at which to split the content of the original object, with the first position being 0."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError if <code>relativePosition</code> is greater than <code>textLength</code>, or less than 0."]},
            {  "tagName": "return",
               "values": ["the new object, which contains the content of the original object, starting at the specified position."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": [{ "name": "relativePosition", "type": "int"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "bindableElement",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "@private"},
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.textLayout.elements.IFlowGroupElement",
        "qname": "parent",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the parent of this FlowElement object. Every FlowElement has at most one parent.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "textLength",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the total length of text owned by this FlowElement object and its children.  If an element has no text, the value of <code>textLength</code> is usually zero.  <p>ParagraphElement objects have a final span with a paragraph terminator character for the last SpanElement object.The paragraph terminator is included in the value of the <code>textLength</code> of that SpanElement object and all its parents.  It is not included in <code>text</code> property of the SpanElement object.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["#textLength"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "parentRelativeStart",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the relative start of this FlowElement object in the parent. If parent is null, this value is always zero. If parent is not null, the value is the sum of the text lengths of all previous siblings.",
        "tags": [
        {  "tagName": "see",
               "values": ["#textLength"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["offset"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "parentRelativeEnd",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the relative end of this FlowElement object in the parent. If the parent is null this is always equal to <code>textLength</code>.  If the parent is not null, the value is the sum of the text lengths of this and all previous siblings, which is effectively the first character in the next FlowElement object.",
        "tags": [
        {  "tagName": "see",
               "values": ["IFlowGroupElement", "#textLength"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["offset"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "id",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Assigns an identifying name to the element, making it possible to set a style for the element by referencing the <code>id</code>. For example, the following line sets the color for a SpanElement object that has an id of span1:  <listing version=&quot;3.0&quot; > textFlow.getElementByID(&quot;span1&quot;).setStyle(&quot;color&quot;, 0xFF0000); </listing>",
        "tags": [
        {  "tagName": "see",
               "values": ["TextFlow#getElementByID()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "typeName",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Each FlowElement has a <code>typeName</code>.  <code>typeName</code> defaults to the string the <code>textLayoutFormat</code> TextConverter uses.  This API can be used to set a different <code>typeName</code> to a <code>FlowElement</code>.  Typically this is done to support <code>type</code> selectors in CSS.  <p>See the <code>TEXT_FIELD_HTML_FORMAT</code> documentation for how this used..</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.conversion.TextConverter", "org.apache.royale.textLayout.conversion.TextConverter#TEXT_FIELD_HTML_FORMAT", "org.apache.royale.textLayout.conversion.IHTMLImporter"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "String",
        "qname": "defaultTypeName",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "@private"},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "impliedElement",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "@private"},
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "formatForCascade",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Concatenates tlf attributes with any other tlf attributes  Return the concatenated result",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "computedFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the computed format attributes that are in effect for this element. Takes into account the inheritance of attributes from parent elements.",
        "tags": [
        {  "tagName": "see",
               "values": ["org.apache.royale.textLayout.formats.ITextLayoutFormat ITextLayoutFormat"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "calculateComputedFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
          "params": []}
      ,
      { "type": "method",
        "qname": "getStyle",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Returns the value of the style specified by the <code>styleProp</code> parameter, which specifies the style name and can include any user style name. Accesses an existing span, paragraph, text flow, or container style. Searches the parent tree if the style's value is <code>undefined</code> on a particular element.   accessed. Returns <code>undefined</code> if the style is not set.",
        "tags": [
        {  "tagName": "see",
               "values": ["#clearStyle()", "#setStyle()", "#userStyles"]},
            {  "tagName": "param",
               "values": ["styleProp The name of the style whose value is to be retrieved."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["The value of the specified style. The type varies depending on the type of the style being"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "*",
          "params": [{ "name": "styleProp", "type": "String"}]}
      ,
      { "type": "method",
        "qname": "setStyle",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Sets the style specified by the <code>styleProp</code> parameter to the value specified by the <code>newValue</code> parameter. You can set a span, paragraph, text flow, or container style, including any user name-value pair.  <p><strong>Note:</strong> If you assign a custom style, Text Layout Framework can import and export it but compiled MXML cannot support it.</p>  .",
        "tags": [
        {  "tagName": "see",
               "values": ["#clearStyle()", "#getStyle()", "#userStyles"]},
            {  "tagName": "param",
               "values": ["styleProp The name of the style to set.", "newValue The value to which to set the style."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "styleProp", "type": "String"},
        { "name": "newValue", "type": "*"}]}
      ,
      { "type": "method",
        "qname": "clearStyle",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Clears the style specified by the <code>styleProp</code> parameter from this FlowElement object. Sets the value to <code>undefined</code>.",
        "tags": [
        {  "tagName": "see",
               "values": ["#getStyle()", "#setStyle()", "#userStyles"]},
            {  "tagName": "param",
               "values": ["styleProp The name of the style to clear."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "styleProp", "type": "String"}]}
      ,
      { "type": "method",
        "qname": "removed",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Called when an element is removed. Used for container elements to run any clean up code.",
          "return": "void",
          "params": []}
      ,
      { "type": "accessor",
        "access": "write-only",
        "return": "Object",
        "qname": "tracking",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Sets the tracking and is synonymous with the <code>trackingRight</code> property. Specified as a number of pixels or a percent of <code>fontSize</code>.",
        "tags": [
        {  "tagName": "see",
               "values": ["#trackingRight"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "getAbsoluteStart",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the start location of the element in the text flow as an absolute index. The first character in the flow is position 0.",
        "tags": [
        {  "tagName": "see",
               "values": ["#parentRelativeStart", "TextFlow"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["The index of the start of the element from the start of the TextFlow object."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": []}
      ,
      { "type": "method",
        "qname": "getElementRelativeStart",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the start of this element relative to an ancestor element. Assumes that the ancestor element is in the parent chain. If the ancestor element is the parent, this is the same as <code>this.parentRelativeStart</code>.  If the ancestor element is the grandparent, this is the same as <code>parentRelativeStart</code> plus <code>parent.parentRelativeStart</code> and so on.",
        "tags": [
        {  "tagName": "see",
               "values": ["#getAbsoluteStart()"]},
            {  "tagName": "param",
               "values": ["ancestorElement The element from which you want to find the relative start of this element."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the offset of this element."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": [{ "name": "ancestorElement", "type": "org.apache.royale.textLayout.elements.IFlowElement"}]}
      ,
      { "type": "method",
        "qname": "getTextFlow",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Climbs the text flow hierarchy to return the root TextFlow object for the element.",
        "tags": [
        {  "tagName": "see",
               "values": ["TextFlow"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["The root TextFlow object for this FlowElement object."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.ITextFlow",
          "params": []}
      ,
      { "type": "method",
        "qname": "getParagraph",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.textLayout.elements.IParagraphElement"]}  ],
          "return": "org.apache.royale.textLayout.elements.IParagraphElement",
          "params": []}
      ,
      { "type": "method",
        "qname": "isInTable",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "Boolean",
          "params": []}
      ,
      { "type": "method",
        "qname": "getParentCellElement",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.textLayout.elements.ITableCellElement"]}  ],
          "return": "org.apache.royale.textLayout.elements.ITableCellElement",
          "params": []}
      ,
      { "type": "method",
        "qname": "getPreviousSibling",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the previous FlowElement sibling in the text flow hierarchy.",
        "tags": [
        {  "tagName": "see",
               "values": ["#getNextSibling()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the previous FlowElement object of the same type, or null if there is no previous sibling."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": []}
      ,
      { "type": "method",
        "qname": "getNextSibling",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the next FlowElement sibling in the text flow hierarchy.",
        "tags": [
        {  "tagName": "see",
               "values": ["#getPreviousSibling()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the next FlowElement object of the same type, or null if there is no sibling."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": []}
      ,
      { "type": "method",
        "qname": "getCharAtPosition",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the character at the specified position, relative to this FlowElement object. The first character is at relative position 0.",
        "tags": [
        {  "tagName": "see",
               "values": ["#getCharCodeAtPosition()"]},
            {  "tagName": "param",
               "values": ["relativePosition The relative position of the character in this FlowElement object."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["String containing the character."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": [{ "name": "relativePosition", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "getCharCodeAtPosition",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the character code at the specified position, relative to this FlowElement. The first character is at relative position 0.",
        "tags": [
        {  "tagName": "see",
               "values": ["#getCharAtPosition()"]},
            {  "tagName": "param",
               "values": ["relativePosition  The relative position of the character in this FlowElement object."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the Unicode value for the character at the specified position."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": [{ "name": "relativePosition", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "updateRange",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Update the FlowElement to account for text added before it.",
        "tags": [
        {  "tagName": "param",
               "values": ["len number of characters added (may be negative if deletion)"]}  ],
          "return": "void",
          "params": [{ "name": "len", "type": "int"}]}
      ]
  }
