{ "type": "class",
  "qname": "org.apache.royale.textLayout.elements.SpanElement",
  "baseClassname": "org.apache.royale.textLayout.elements.FlowLeafElement"
  ,
    "description": "The SpanElement class represents a run of text that has a single set of formatting attributes applied. SpanElement objects contain the text in a paragraph. A simple paragraph (ParagraphElement) includes one or more SpanElement objects.  <p>A ParagraphElement will have a single SpanElement object if all the text in the paragraph shares the same set of attributes. It has multiple SpanElement objects if the text in the paragraph has multiple formats.</p>",
  "tags": [
  {  "tagName": "see",
         "values": ["FlowElement", "ParagraphElement", "TextFlow"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "org.apache.royale.textLayout.elements.SpanElement",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor - creates a SpanElement object to hold a run of text in a paragraph.",
        "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-only",
        "return": "Boolean",
        "qname": "abstract",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "@private"},
      { "type": "accessor",
        "access": "read-only",
        "return": "String",
        "qname": "defaultTypeName",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "@private"},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "text",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Receives the String of text that this SpanElement object holds.  <p>The text of a span does not include the carriage return (CR) at the end of the paragraph but it is included in the value of <code>textLength</code>.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "mxmlChildren",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Sets text based on content within span tags; always deletes existing children. This property is intended for use during MXML compiled import in Flex. Flash Professional ignores this property. When TLF markup elements have other TLF markup elements as children, the children are assigned to this property.",
        "tags": [
        {  "tagName": "param",
               "values": ["array - an array of elements within span tags. Each element of array must be a SpecialCharacterElement or a String."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["TypeError If array element is not a SpecialCharacterElement or a String."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "Boolean",
        "qname": "hasParagraphTerminator",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies whether this SpanElement object terminates the paragraph. The SpanElement object that terminates a paragraph has an extra, hidden character at the end. This character is added automatically by the component and is included in the value of the <code>textLength</code> property."},
      { "type": "method",
        "qname": "replaceText",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Updates the text in text span based on the specified start and end positions. To insert text, set the end position equal to the start position. To append text to the existing text in the span, set the start position and the end position equal to the length of the existing text.  <p>The replaced text includes the start character and up to but not including the end character.</p>  relative to the start of the span. The first character in the span is at position 0. relative to the start of the span. Set this value equal to <code>relativeStartPos</code> for an insert.  range or a surrogate pair is being split as a result of the replace.",
        "tags": [
        {  "tagName": "param",
               "values": ["relativeStartPosition The index position of the beginning of the text to be replaced,", "relativeEndPosition The index one position after the last character of the text to be replaced,", "textValue The replacement text or the text to add, as the case may be."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "throws",
               "values": ["RangeError The <code>relativeStartPosition</code> or <code>relativeEndPosition</code> specified is out of"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "relativeStartPosition", "type": "int"},
        { "name": "relativeEndPosition", "type": "int"},
        { "name": "textValue", "type": "String"}]}
      ]
  }
