{ "type": "class",
  "qname": "org.apache.royale.textLayout.factory.StringTextLineFactory",
  "baseClassname": "org.apache.royale.textLayout.factory.TextLineFactoryBase"
  ,
    "description": "The StringTextLineFactory class provides a simple way to create TextLines from a string.  <p>The text lines are static and are created using a single format and a single paragraph. The lines are created to fit in the specified bounding rectangle.</p>  <p>The StringTextLineFactory provides an efficient way to create TextLines, since it reuses single TextFlow, ParagraphElement, SpanElement, and ContainerController objects across many repeated invocations. You can create a single factory, and use it again and again. You can also reuse all the parts that are the same each time you call it; for instance, you can reuse the various formats and the bounds.</p>  <p><b>Note:</b> To create static lines that use multiple formats or paragraphs, or that include inline graphics, use a TextFlowTextLineFactory and a TextFlow object. </p>  <p><b>Note:</b> The StringTextLineFactory ignores the truncationIndicatorFormat property set in the truncationOptions when truncating text.</p>",
  "tags": [
  {  "tagName": "see",
         "values": ["org.apache.royale.textLayout.factory.TextFlowTextLineFactory TextFlowTextLineFactory"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.textLayout.elements.IConfiguration",
        "qname": "configuration",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The configuration used by the internal TextFlow object.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.textLayout.elements.IConfiguration",
        "qname": "defaultConfiguration",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The default configuration used by this factory if none is specified.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "org.apache.royale.textLayout.factory.StringTextLineFactory",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Creates a StringTextLineFactory object.  internal TextFlow object used to compose lines produced by this factory.",
        "tags": [
        {  "tagName": "param",
               "values": ["configuration The configuration object used to set the properties of the"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "configuration", "type": "org.apache.royale.textLayout.elements.IConfiguration"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "spanFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The character format.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "paragraphFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The paragraph format.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.textLayout.formats.ITextLayoutFormat",
        "qname": "textFlowFormat",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The text flow format.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "text",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The text to convert into ITextLine objects.  <p>To produce TextLines, call <code>createTextLines()</code> after setting this <code>text</code> property and the desired formats.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "createTextLines",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Creates ITextLine objects using the text currently assigned to this factory object.  <p>The text lines are created using the currently assigned text and formats and are composed to fit the bounds assigned to the <code>compositionBounds</code> property. As each line is created, the factory calls the function specified in the <code>callback</code> parameter. This function is passed the ITextLine object and is responsible for displaying the line.</p>  <p>To create a different set of lines, change any properties desired and call <code>createTextLines()</code> again.</p>  <p>Note that the scroll policies of the factory will control how many lines are generated.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["callback The callback function called for each ITextLine object created."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "callback", "type": "Function"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "String",
        "qname": "truncatedText",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "@private Gets the text that is composed in the preceding call to <code>createTextLines</code> If no truncation is performed, a string equal to <code>text</code> is returned. If truncation is performed, but nothing fits, an empty string is returned. Otherwise, a substring of <code>text</code> followed by the truncation indicator is returned."}]
  }
