{ "type": "class",
  "qname": "org.apache.royale.textLayout.elements.FlowGroupElement",
  "baseClassname": "org.apache.royale.textLayout.elements.FlowElement"
  ,
    "description": "The FlowGroupElement class is the base class for FlowElement objects that can have an array of children. These classes include TextFlow, ParagraphElement, DivElement, and LinkElement.  <p>You cannot create a FlowGroupElement object directly. Invoking <code>new FlowGroupElement()</code> throws an error exception.</p>",
  "tags": [
  {  "tagName": "see",
         "values": ["DivElement", "LinkElement", "ParagraphElement", "TextFlow"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "org.apache.royale.textLayout.elements.FlowGroupElement",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Base class - invoking <code>new FlowGroupElement()</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": ["override"],
        "deprecated": {}},
      { "type": "method",
        "qname": "getText",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "String",
          "params": [{ "name": "relativeStart", "type": "int"},
        { "name": "relativeEnd", "type": "int"},
        { "name": "paragraphSeparator", "type": "String"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "mxmlChildren",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Appends an array of children to this object. Uses the <code>replaceChildren()</code> method to append each element in the array. Intended for use during an mxml compiled import.",
        "tags": [
        {  "tagName": "see",
               "values": ["FlowGroupElement#replaceChildren()"]},
            {  "tagName": "param",
               "values": ["array - array of children to attach.  Each element of the array must be a FlowElement object or a String."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["TypeError if array element is not a FlowElement or String"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "numChildren",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the number of FlowElement children that this FlowGroupElement object has.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "getChildIndex",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Searches in children for the specified FlowElement object and returns its index position.",
        "tags": [
        {  "tagName": "param",
               "values": ["child The FlowElement object item to locate among the children."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["The index position of the specified chilc.  If <code>child</code> is not found, returns -1."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": [{ "name": "child", "type": "org.apache.royale.textLayout.elements.IFlowElement"}]}
      ,
      { "type": "method",
        "qname": "getChildAt",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the FlowElement child at the specified index.",
        "tags": [
        {  "tagName": "param",
               "values": ["index the position at which to find the FlowElement object."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the child FlowElement object at the specified position."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": [{ "name": "index", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "findLeaf",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Given a relative text position, find the leaf element that contains the position.  <p>Looks down the flow element hierarchy to find the IFlowLeafElement that contains the specified position. The specified position is relative to this FlowElement object.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["relativePosition relative text index to look up."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the leaf element containing the relative position."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowLeafElement",
          "params": [{ "name": "relativePosition", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "findChildIndexAtPosition",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Given a relative text position, find the index of the first child FlowElement that contains the relative position. More than one child can contain relative position because of zero length FlowElements.  <p>Examine the children to find the FlowElement that contains the relative position. The supplied relative position is relative to this FlowElement.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["relativePosition  the position relative to this element"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["index of first child element containing <code>relativePosition</code>"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": [{ "name": "relativePosition", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "getFirstLeaf",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the first FlowLeafElement descendant of this group.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the first FlowLeafElement object."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowLeafElement",
          "params": []}
      ,
      { "type": "method",
        "qname": "getLastLeaf",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the last FlowLeafElement descendent of this group.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the last FlowLeafElement object."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowLeafElement",
          "params": []}
      ,
      { "type": "method",
        "qname": "replaceChildren",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Replaces child elements in the group with the specified new elements. Use the <code>beginChildIndex</code> and <code>endChildIndex</code> parameters to govern the operation as follows: <p><ul> <li>To delete elements, do not pass any replacement elements.</li> <li>To insert elements, pass the same value for <code>beginChildIndex</code> and <code>endChildIndex</code>. The new elements is inserted before the specified index.</li> <li>To append elements, pass <code>numChildren</code> for <code>beginChildIndex</code> and <code>endChildIndex</code>.</li> </ul></p> <p>Otherwise, this method replaces the specified elements, starting with the element at <code>beginChildIndex</code> and up to but not including <code>endChildIndex</code>.</p>  arrays or vectors thereof.",
        "tags": [
        {  "tagName": "param",
               "values": ["beginChildIndex The index value for the start position of the replacement range in the children array.", "endChildIndex The index value following the end position of the replacement range in the children array.", "rest The elements to replace the specified range of elements. Can be a sequence containing flow elements or"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError The <code>beginChildIndex</code> or <code>endChildIndex</code> specified is out of range."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "beginChildIndex", "type": "int"},
        { "name": "endChildIndex", "type": "int"},
        { "name": "rest", "type": "Array"}]}
      ,
      { "type": "method",
        "qname": "addChild",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Appends a child FlowElement object. The new child is added to the end of the children list.",
        "tags": [
        {  "tagName": "param",
               "values": ["child The child element to append."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "return",
               "values": ["the added child FlowElement"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": [{ "name": "child", "type": "org.apache.royale.textLayout.elements.IFlowElement"}]}
      ,
      { "type": "method",
        "qname": "addChildAt",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Adds a child FlowElement object at the specified index position.",
        "tags": [
        {  "tagName": "param",
               "values": ["The index of the position at which to add the child element, with the first position being 0.", "child The child element to add."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError The <code>index</code> is out of range."]},
            {  "tagName": "return",
               "values": ["the added child FlowElement"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": [{ "name": "index", "type": "uint"},
        { "name": "child", "type": "org.apache.royale.textLayout.elements.IFlowElement"}]}
      ,
      { "type": "method",
        "qname": "removeChild",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Removes the specified child FlowElement object from the group.",
        "tags": [
        {  "tagName": "param",
               "values": ["child The child element to remove."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["ArgumentError The <code>child</code> is not found."]},
            {  "tagName": "return",
               "values": ["the removed child FlowElement object"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": [{ "name": "child", "type": "org.apache.royale.textLayout.elements.IFlowElement"}]}
      ,
      { "type": "method",
        "qname": "removeChildAt",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Removes the child FlowElement object at the specified index position.",
        "tags": [
        {  "tagName": "param",
               "values": ["index position at which to remove the child element."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError The <code>index</code> is out of range."]},
            {  "tagName": "return",
               "values": ["the child FlowElement object removed from the specified position."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowElement",
          "params": [{ "name": "index", "type": "uint"}]}
      ,
      { "type": "method",
        "qname": "splitAtIndex",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Splits this object at the position specified by the <code>childIndex</code> parameter. If this group element has a parent, creates a shallow copy of this object and replaces its children with the elements up to the index. Moves elements following <code>childIndex</code> into the copy.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError if <code>childIndex</code> is greater than the length of the children."]},
            {  "tagName": "return",
               "values": ["the new FlowGroupElement object."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.textLayout.elements.IFlowGroupElement",
          "params": [{ "name": "childIndex", "type": "int"}]}
      ]
  }
