{ "type": "class",
  "qname": "mx.controls.TextArea",
  "baseClassname": "mx.core.ScrollControlBase"
  ,
    "description": "The TextArea control is a multiline text field with a border and optional scroll bars. The TextArea control supports the HTML rendering capabilities of Flash Player and AIR.  <p>If you disable a TextArea control, it displays its contents in the color specified by the <code>disabledColor</code> style. You can also set a TextArea control to read-only to disallow editing of the text. To conceal input text by displaying characters as asterisks, set the TextArea's <code>displayAsPassword</code> property.</p>  <p>The TextArea control has the following default sizing characteristics:</p> <table class=&quot;innertable&quot;> <tr> <th>Characteristic</th> <th>Description</th> </tr> <tr> <td>Default size</td> <td>width: 160 pixels; height: 44 pixels</td> </tr> <tr> <td>Minimum size</td> <td>0 pixels</td> </tr> <tr> <td>Maximum size</td> <td>10000 by 10000 pixels</td> </tr> </table>   <p>The <code>&lt;mx:TextArea&gt;</code> tag inherits the attributes of its superclass and adds the following attributes:</p>  <pre>\\n &lt;mx:TextArea\\n <b>Properties</b>\\n condenseWhite=&quot;false|true&quot;\\n data=&quot;undefined&quot;\\n displayAsPassword=&quot;false|true&quot;\\n editable=&quot;true|false&quot;\\n horizontalScrollPolicy=&quot;auto|on|off&quot;\\n horizontalScrollPosition=&quot;0&quot;\\n htmlText=&quot;null&quot;\\n imeMode=&quot;null&quot;\\n length=&quot;0&quot;\\n listData=&quot;null&quot;\\n maxChars=&quot;0&quot;\\n restrict=&quot;null&quot;\\n selectionBeginIndex=&quot;0&quot;\\n selectionEndIndex=&quot;0&quot;\\n styleSheet=&quot;null&quot;\\n text=&quot;&quot;\\n textHeight=&quot;<i>height of text</i>&quot; [read-only]\\n textWidth=&quot;<i>width of text</i>&quot; [read-only]\\n verticalScrollPolicy=&quot;auto|on|off&quot;\\n verticalScrollPosition=&quot;0&quot;\\n wordWrap=&quot;true|false&quot;\\n &nbsp;\\n <b>Styles</b>\\n disabledColor=&quot;0xAAB3B3&quot;\\n focusAlpha=&quot;0.5&quot;\\n focusRoundedCorners&quot;tl tr bl br&quot;\\n paddingLeft=&quot;0&quot;&quot;\\n paddingRight=&quot;0&quot;&quot;\\n &nbsp;\\n <b>Events</b>\\n change=&quot;<i>No default</i>&quot;\\n /&gt;\\n </pre>",
  "tags": [
  {  "tagName": "includeExample",
         "values": ["examples/TextAreaExample.mxml"]},
      {  "tagName": "see",
         "values": ["mx.controls.Label", "mx.controls.Text", "mx.controls.TextInput", "mx.controls.RichTextEditor", "mx.controls.textClasses.TextRange"]},
      {  "tagName": "mxml",
         "values": []},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["Flex 3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "mx.controls.TextArea",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": []}
      ,
      { "type": "method",
        "qname": "createElement",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.WrappedHTMLElement"]}  ],
          "return": "org.apache.royale.core.WrappedHTMLElement",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "enabled",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1"]},
            {  "tagName": "copy",
               "values": ["mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled", "mx.core.IUIComponent#enabled"]},
            {  "tagName": "productversion",
               "values": ["Flex 3", "Flex 3", "Flex 3", "Flex 3", "Flex 3", "Flex 3", "Flex 3", "Flex 3", "Flex 3", "Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0", "3.0", "3.0", "3.0", "3.0", "3.0", "3.0", "3.0", "3.0", "3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "condenseWhite",
        "namespace": "public",
        "bindable": ["condenseWhiteChanged"],
        "details": [],
        "deprecated": {},
          "description": "Specifies whether extra white space (spaces, line breaks, and so on) should be removed in a TextArea control with HTML text.  <p>The <code>condenseWhite</code> property only affects text set with the <code>htmlText</code> property, not the <code>text</code> property. If you set text with the <code>text</code> property, <code>condenseWhite</code> is ignored.</p>  <p>If you set the <code>condenseWhite</code> property to <code>true</code>, you must use standard HTML commands such as <code>&lt;br&gt;</code> and <code>&lt;p&gt;</code> to place line breaks in the text field.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "data",
        "namespace": "public",
        "bindable": ["dataChange"],
        "details": [],
        "deprecated": {},
          "description": "Lets you pass a value to the component when you use it in an item renderer or item editor. You typically use data binding to bind a field of the <code>data</code> property to a property of this component.  <p>When you use the control as a drop-in item renderer or drop-in item editor, Flex automatically writes the current value of the item to the <code>text</code> property of this control.</p>  <p>You do not set this property in MXML.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["mx.core.IDataRenderer"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "displayAsPassword",
        "namespace": "public",
        "bindable": ["displayAsPasswordChanged"],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether this control is used for entering passwords. If <code>true</code>, the field does not display entered text, instead, each text character entered into the control appears as the  character &quot;&#42;&quot;.   instead of the actual characters",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "helpid",
               "values": ["3177"]},
            {  "tagName": "tiptext",
               "values": ["Specifies whether to display '*'"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "editable",
        "namespace": "public",
        "bindable": ["editableChanged"],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether the user is allowed to edit the text in this control. If <code>true</code>, the user can edit the text.",
        "tags": [
        {  "tagName": "default",
               "values": ["true;"]},
            {  "tagName": "helpid",
               "values": ["3176"]},
            {  "tagName": "tiptext",
               "values": ["Specifies whether the component is editable or not"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "htmlText",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Specifies the text displayed by the TextArea control, including HTML markup that expresses the styles of that text. When you specify HTML text in this property, you can use the subset of HTML tags that is supported by the Flash TextField control.  <p>When you set this property, the HTML markup is applied after the CSS styles for the TextArea instance are applied. When you get this property, the HTML markup includes the CSS styles.</p>  <p>For example, if you set this to be a string such as, <code>&quot;This is an example of &lt;b&gt;bold&lt;/b&gt; markup&quot;</code>, the text &quot;This is an example of <b>bold</b> markup&quot; appears in the TextArea with whatever CSS styles normally apply. Also, the word &quot;bold&quot; appears in boldface font because of the <code>&lt;b&gt;</code> markup.</p>  <p>HTML markup uses characters such as &lt; and &gt;, which have special meaning in XML (and therefore in MXML). So, code such as the following does not compile:</p>  <pre>\\n &lt;mx:TextArea htmlText=&quot;This is an example of &lt;b&gt;bold&lt;/b&gt; markup&quot;/&gt;\\n </pre>  <p>There are three ways around this problem.</p>  <ul>  <li>  <p>Set the <code>htmlText</code> property in an ActionScript method called as an <code>initialize</code> handler:</p>  <pre>\\n &lt;mx:TextArea id=&quot;myTextArea&quot; initialize=&quot;myTextArea_initialize()&quot;/&gt;\\n </pre>  <p>where the <code>myTextArea_initialize</code> method is in a script CDATA section:</p>  <pre>\\n &lt;fx:Script&gt;\\n &lt;![CDATA[\\n private function myTextArea_initialize():void {\\n myTextArea.htmlText = &quot;This is an example of &lt;b&gt;bold&lt;/b&gt; markup&quot;;\\n }\\n ]]&gt;\\n &lt;/fx:Script&gt;\\n \\n </pre>  <p>This is the simplest approach because the HTML markup remains easily readable. Notice that you must assign an <code>id</code> to the TextArea so you can refer to it in the <code>initialize</code> handler.</p>  </li>  <li>  <p>Specify the <code>htmlText</code> property by using a child tag with a CDATA section. A CDATA section in XML contains character data where characters like &lt; and &gt; aren't given a special meaning.</p>  <pre>\\n &lt;mx:TextArea&gt;\\n &lt;mx:htmlText&gt;&lt;![CDATA[This is an example of &lt;b&gt;bold&lt;/b&gt; markup]]&gt;&lt;/mx:htmlText&gt;\\n &lt;mx:TextArea/&gt;\\n </pre>  <p>You must write the <code>htmlText</code> property as a child tag rather than as an attribute on the <code>&lt;mx:TextArea&gt;</code> tag because XML doesn't allow CDATA for the value of an attribute. Notice that the markup is readable, but the CDATA section makes this approach more complicated.</p>  </li>  <li>  <p>Use an <code>hmtlText</code> attribute where any occurences of the HTML markup characters &lt; and &gt; in the attribute value are written instead of the XML &quot;entities&quot; <code>&amp;lt;</code> and <code>&amp;gt;</code>:</p>  <pre>\\n &lt;mx:TextArea htmlText=&quot;This is an example of &amp;lt;b&amp;gt;bold&amp;lt;/b&amp;gt; markup&quot;/&amp;gt;\\n </pre>  Adobe does not recommend this approach because the HTML markup becomes nearly impossible to read.  </li>  </ul>  <p>If the <code>condenseWhite</code> property is <code>true</code> when you set the <code>htmlText</code> property, multiple white-space characters are condensed, as in HTML-based browsers; for example, three consecutive spaces are displayed as a single space. The default value for <code>condenseWhite</code> is <code>false</code>, so you must set <code>condenseWhite</code> to <code>true</code> to collapse the white space.</p>  <p>If you read back the <code>htmlText</code> property quickly after setting it, you get the same string that you set. However, after the LayoutManager runs, the value changes to include additional markup that includes the CSS styles.</p>  <p>Setting the <code>htmlText</code> property affects the <code>text</code> property in several ways. If you read the <code>text</code> property quickly after setting the <code>htmlText</code> property, you get <code>null</code>, which indicates that the <code>text</code> corresponding to the new <code>htmlText</code> has not yet been determined. However, after the LayoutManager runs, the <code>text</code> property value changes to the <code>htmlText</code> string with all the HTML markup removed; that is, the value is the characters that the TextArea actually displays.</p>  <p>Conversely, if you set the <code>text</code> property, any previously set <code>htmlText</code> is irrelevant. If you read the <code>htmlText</code> property quickly after setting the <code>text</code> property, you get <code>null</code>, which indicates that the <code>htmlText</code> that corresponds to the new <code>text</code> has not yet been determined. However, after the LayoutManager runs, the <code>htmlText</code> property value changes to the new text plus the HTML markup for the CSS styles.</p>  <p>To make the LayoutManager run immediately, you can call the <code>validateNow()</code> method on the TextArea. For example, you could set some <code>htmlText</code>, call the <code>validateNow()</code> method, and immediately obtain the corresponding <code>text</code> that doesn't have the HTML markup.</p>  <p>If you set both <code>text</code> and <code>htmlText</code> properties in ActionScript, whichever is set last takes effect. Do not set both in MXML, because MXML does not guarantee that the properties of an instance get set in any particular order.</p>  <p>Setting either <code>text</code> or <code>htmlText</code> property inside a loop is a fast operation, because the underlying TextField that actually renders the text is not updated until the LayoutManager runs.</p>  <p>If you try to set this property to <code>null</code>, it is set, instead, to the empty string. If the property temporarily has the value <code>null</code>, it indicates that the <code>text</code> has been recently set and the corresponding <code>htmlText</code> has not yet been determined.</p>",
        "tags": [
        {  "tagName": "default",
               "values": [""""]},
            {  "tagName": "see",
               "values": ["flash.text.TextField#htmlText"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "length",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The number of characters of text displayed in the TextArea.",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "helpid",
               "values": ["3173"]},
            {  "tagName": "tiptext",
               "values": ["The number of characters in the TextArea"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.controls.listClasses.BaseListData",
        "qname": "listData",
        "namespace": "public",
        "bindable": ["dataChange"],
        "details": [],
        "deprecated": {},
          "description": "When a component is used as a drop-in item renderer or drop-in item editor, Flex initializes the <code>listData</code> property of the component with the appropriate data from the list control. The component can then use the <code>listData</code> property to initialize the <code>data</code> property of the drop-in item renderer or drop-in item editor.  <p>You do not set this property in MXML or ActionScript; Flex sets it when the component is used as a drop-in item renderer or drop-in item editor.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["mx.controls.listClasses.IDropInListItemRenderer"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "maxChars",
        "namespace": "public",
        "bindable": ["maxCharsChanged"],
        "details": [],
        "deprecated": {},
          "description": "Maximum number of characters that users can enter in the text field. This property does not limit the length of text specified by the setting the control's <code>text</code> or <code>htmlText</code>property.  <p>The default value of 0, which indicates no limit.</p>",
        "tags": [
        {  "tagName": "helpid",
               "values": ["3172"]},
            {  "tagName": "tiptext",
               "values": ["The maximum number of characters that the TextArea can contain"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "restrict",
        "namespace": "public",
        "bindable": ["restrictChanged"],
        "details": [],
        "deprecated": {},
          "description": "Indicates the set of characters that a user can enter into the control. If the value of the <code>restrict</code> property is <code>null</code>, you can enter any character. If the value of the <code>restrict</code> property is an empty string, you cannot enter any character. This property only restricts user interaction; a script can put any text into the text field. If the value of the <code>restrict</code> property is a string of characters, you may enter only characters in that string into the text field.  <p>Flex scans the string from left to right. You can specify a range by using the hyphen (-) character. If the string begins with a caret (^) character, all characters are initially accepted and succeeding characters in the string are excluded from the set of accepted characters. If the string does not begin with a caret (^) character, no characters are initially accepted and succeeding characters in the string are included in the set of accepted characters.</p>  <p>Because some characters have a special meaning when used in the <code>restrict</code> property, you must use backslash characters to specify the literal characters -, &#094;, and \\. When you use the <code>restrict</code> property as an attribute in an MXML tag, use single backslashes, as in the following example: \\&#094;\\-\\\\. When you set the <code>restrict</code> In and ActionScript expression, use double backslashes, as in the following example: \\\\&#094;\\\\-\\\\\\.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["flash.text.TextField#restrict"]},
            {  "tagName": "helpid",
               "values": ["3174"]},
            {  "tagName": "tiptext",
               "values": ["The set of characters that may be entered into the TextArea"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "selectionBeginIndex",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The zero-based character index value of the first character in the current selection. For example, the first character is 0, the second character is 1, and so on. When the control gets the focus, the selection is visible if the <code>selectionBeginIndex</code> and <code>selectionEndIndex</code> properties are both set.   in the selection.",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "tiptext",
               "values": ["The zero-based index value of the first character"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "selectionEndIndex",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The zero-based index of the position <i>after</i>the last character in the current selection (equivalent to the one-based index of the last character). If the last character in the selection, for example, is the fifth character, this property has the value 5. When the control gets the focus, the selection is visible if the <code>selectionBeginIndex</code> and <code>selectionEndIndex</code> properties are both set.   in the selection.",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "tiptext",
               "values": ["The zero-based index value of the last character"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "text",
        "namespace": "public",
        "bindable": ["textChanged"],
        "details": [],
        "deprecated": {},
          "description": "Plain text that appears in the control. Its appearance is determined by the CSS styles of this Label control.  <p>Any HTML tags in the text string are ignored, and appear as  entered in the string. To display text formatted using HTML tags, use the <code>htmlText</code> property instead. If you set the <code>htmlText</code> property, the HTML replaces any text you had set using this propety, and the <code>text</code> property returns a plain-text version of the HTML text, with all HTML tags stripped out. For more information see the <code>htmlText</code> property.</p>  <p>To include the special characters left angle  bracket (&lt;), right angle bracket (&gt;), or ampersand (&amp;) in the text, wrap the text string in the CDATA tag. Alternatively, you can use HTML character entities for the special characters, for example, <code>&amp;lt;</code>.</p>  <p>If you try to set this property to <code>null</code>, it is set, instead, to the empty string. The <code>text</code> property can temporarily have the value <code>null</code>, which indicates that the <code>htmlText</code> has been recently set and the corresponding <code>text</code> value has not yet been determined.</p>",
        "tags": [
        {  "tagName": "default",
               "values": [""""]},
            {  "tagName": "helpid",
               "values": ["3179"]},
            {  "tagName": "tiptext",
               "values": ["Gets or sets the TextArea content"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["HTMLInputElement"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "wordWrap",
        "namespace": "public",
        "bindable": ["wordWrapChanged"],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether the text automatically wraps at the end of a line. If <code>true</code>, the text wraps to occupy multiple lines, if necessary.",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "helpid",
               "values": ["3175"]},
            {  "tagName": "tiptext",
               "values": ["If true, lines will wrap. If false, long lines get clipped."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "setSelection",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Selects the text in the range specified by the parameters. If the control is not in focus, the selection highlight will not show until the control gains focus. Also, if the focus is gained by clicking on the control, any previous selection would be lost. If the two parameter values are the same, the new selection is an insertion point.  selection; that is, the first character is 0, the second character is 1, and so on.  the last character in the selection (equivalent to the one-based index of the last character). If the parameter is 5, the last character in the selection, for example, is the fifth character. When the TextArea control gets the focus, the selection is visible if the <code>selectionBeginIndex</code> and <code>selectionEndIndex</code> properties are both set.",
        "tags": [
        {  "tagName": "param",
               "values": ["beginIndex The zero-based index of the first character in the", "endIndex The zero-based index of the position <i>after</i>"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "beginIndex", "type": "int"},
        { "name": "endIndex", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "textChangeHandler",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "dispatch change event in response to a textChange event",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.0"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "event", "type": "org.apache.royale.events.Event"}]}
      ]
  ,
  "events": [
  { "qname": "change",
        "type": "org.apache.royale.events.Event"
      ,
          "description": "Dispatched when text in the TextArea control changes through user input. This event does not occur if you use data binding or ActionScript code to change the text.  <p>Even though the default value of the <code>Event.bubbles</code> property is <code>true</code>, this control dispatches the event with the <code>Event.bubbles</code> property set to <code>false</code>.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["flash.events.Event.CHANGE"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "dataChange",
        "type": "mx.events.FlexEvent"
      ,
          "description": "Dispatched when the <code>data</code> property changes.  <p>When you use a component as an item renderer, the <code>data</code> property contains the data to display. You can listen for this event and update the component when the <code>data</code> property changes.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.FlexEvent.DATA_CHANGE"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "keyDown",
        "type": "mx.events.KeyboardEvent"
      ,
          "description": "Dispatched when the user types, deletes, or pastes text into the control. No event is dispatched when the user presses the Delete key, or Backspace key.  <p>Even though the default value of the <code>TextEvent.bubbles</code> property is <code>true</code>, this control dispatches the event with the <code>TextEvent.bubbles</code> property set to <code>false</code>.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["flash.events.TextEvent.TEXT_INPUT"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "keyUp",
        "type": "mx.events.KeyboardEvent"
      }]
  }
