{ "type": "class",
  "qname": "mx.core.UIComponent",
  "baseClassname": "org.apache.royale.core.UIBase"
  ,
    "description": "The UIComponent class is the base class for all visual components, both interactive and noninteractive.  <p>An interactive component can participate in tabbing and other kinds of keyboard focus manipulation, accept low-level events like keyboard and mouse input, and be disabled so that it does not receive keyboard and mouse input. This is in contrast to noninteractive components, like Label and ProgressBar, which simply display contents and are not manipulated by the user.</p> <p>The UIComponent class is not used as an MXML tag, but is used as a base class for other classes.</p>   <p>All user interface components in Flex extend the UIComponent class. Flex components inherit the following properties from the UIComponent class:</p>  <pre>\\n &lt;mx:<i>tagname</i>\\n <b>Properties </b>\\n currentState=&quot;null&quot;\\n doubleClickEnabled=&quot;false|true&quot;\\n enabled=&quot;true|false&quot;\\n height=&quot;0&quot;\\n id=&quot;&quot;\\n maxHeight=&quot;10000&quot;\\n maxWidth=&quot;10000&quot;\\n measuredHeight=\\n measuredMinHeight=\\n measuredMinWidth=\\n measuredWidth=\\n minHeight=&quot;0&quot;\\n minWidth=&quot;0&quot;\\n percentHeight=&quot;NaN&quot;\\n percentWidth=&quot;NaN&quot;\\n states=&quot;null&quot;\\n styleName=&quot;undefined&quot;\\n toolTip=&quot;null&quot;\\n transitions=&quot;&quot;\\n width=&quot;0&quot;\\n x=&quot;0&quot;\\n y=&quot;0&quot;\\n \\n <b>Styles</b>\\n bottom=&quot;undefined&quot;\\n \\n <b>Events</b>\\n valueCommit=&quot;<i>No default</i>&quot;\\n &gt;\\n </pre>",
  "tags": [
  {  "tagName": "see",
         "values": ["mx.core.UIComponent"]},
      {  "tagName": "mxml",
         "values": []},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["Flex 3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "field",
        "qname": "DEFAULT_MEASURED_WIDTH",
        "return": "Number",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The default value for the <code>measuredWidth</code> property. Most components calculate a measuredWidth but some are flow-based and have to pick a number that looks reasonable.",
        "tags": [
        {  "tagName": "default",
               "values": ["160"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "DEFAULT_MEASURED_MIN_WIDTH",
        "return": "Number",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The default value for the <code>measuredMinWidth</code> property. Most components calculate a measuredMinWidth but some are flow-based and have to pick a number that looks reasonable.",
        "tags": [
        {  "tagName": "default",
               "values": ["40"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "DEFAULT_MEASURED_HEIGHT",
        "return": "Number",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The default value for the <code>measuredHeight</code> property. Most components calculate a measuredHeight but some are flow-based and have to pick a number that looks reasonable.",
        "tags": [
        {  "tagName": "default",
               "values": ["22"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "DEFAULT_MEASURED_MIN_HEIGHT",
        "return": "Number",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The default value for the <code>measuredMinHeight</code> property. Most components calculate a measuredMinHeight but some are flow-based and have to pick a number that looks reasonable.",
        "tags": [
        {  "tagName": "default",
               "values": ["22"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "DEFAULT_MAX_WIDTH",
        "return": "Number",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The default value for the <code>maxWidth</code> property.",
        "tags": [
        {  "tagName": "default",
               "values": ["10000"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "DEFAULT_MAX_HEIGHT",
        "return": "Number",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The default value for the <code>maxHeight</code> property.",
        "tags": [
        {  "tagName": "default",
               "values": ["10000"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "mx.core.UIComponent",
        "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": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "maintainAspectRatio",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "index",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The position with the dataProvider being shown by the itemRenderer instance.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.0"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "uint",
        "qname": "chromeColor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "mouseFocusEnabled",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "initialized",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A flag that determines if an object has been through all three phases of layout: commitment, measurement, and layout (provided that any were required).",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "flash.display.Graphics",
        "qname": "graphics",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.display.Graphics",
        "qname": "royalegraphics",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-only",
        "return": "flash.display.Graphics",
        "qname": "flashgraphics",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-only",
        "return": "Number",
        "qname": "baselinePosition",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "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": "accessibilityEnabled",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "useHandCursor",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "From flash.display.Sprite",
        "tags": [
        {  "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": "buttonMode",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "From flash.display.Sprite",
        "tags": [
        {  "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": "errorString",
        "namespace": "public",
        "bindable": ["errorStringChanged"],
        "details": [],
        "deprecated": {},
          "description": "The text that displayed by a component's error tip when a component is monitored by a Validator and validation fails.  <p>You can use the <code>errorString</code> property to show a validation error for a component, without actually using a validator class. When you write a String value to the <code>errorString</code> property, Flex draws a red border around the component to indicate the validation error, and the String appears in a tooltip as the validation error message when you move the mouse over the component, just as if a validator detected a validation error.</p>  <p>To clear the validation error, write an empty String, &quot;&quot;, to the <code>errorString</code> property.</p>  <p>Note that writing a value to the <code>errorString</code> property does not trigger the valid or invalid events; it only changes the border color and displays the validation error message.</p>",
        "tags": [
        {  "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.core.IUIComponent",
        "qname": "owner",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "copy",
               "values": ["mx.core.IVisualElement#owner"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["mx.core.IUIComponent"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "doubleClickEnabled",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Specifies whether the UIComponent object receives <code>doubleClick</code> events. The default value is <code>false</code>, which means that the UIComponent object does not receive <code>doubleClick</code> events.  <p>The <code>mouseEnabled</code> property must also be set to <code>true</code>, its default value, for the object to receive <code>doubleClick</code> events.</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": "Boolean",
        "qname": "enabled",
        "namespace": "public",
        "bindable": ["disabledChange"],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "copy",
               "values": ["mx.core.IUIComponent#enabled"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "focusEnabled",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether the component can receive focus when tabbed to. You can set <code>focusEnabled</code> to <code>false</code> when a UIComponent is used as a subcomponent of another component so that the outer component becomes the focusable entity. If this property is <code>false</code>, focus is transferred to the first parent that has <code>focusEnable</code> set to <code>true</code>.  <p>The default value is <code>true</code>, except for the spark.components.Scroller component. For that component, the default value is <code>false</code>.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["spark.components.Scroller"]},
            {  "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": "hasFocusableChildren",
        "namespace": "public",
        "bindable": ["hasFocusableChildrenChange"],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether child objects can receive focus.  <p><b>Note: </b>This property is similar to the <code>tabChildren</code> property used by Flash Player. Use the <code>hasFocusableChildren</code> property with Flex applications. Do not use the <code>tabChildren</code> property.</p>  <p>This property is usually <code>false</code> because most components either receive focus themselves or delegate focus to a single internal sub-component and appear as if the component has received focus. For example, a TextInput control contains a focusable child RichEditableText control, but while the RichEditableText sub-component actually receives focus, it appears as if the TextInput has focus. TextInput sets <code>hasFocusableChildren</code> to <code>false</code> because TextInput is considered the component that has focus. Its internal structure is an abstraction.</p>  <p>Usually only navigator components, such as TabNavigator and Accordion, have this flag set to <code>true</code> because they receive focus on Tab but focus goes to components in the child containers on further Tabs.</p>  <p>The default value is <code>false</code>, except for the spark.components.Scroller component. For that component, the default value is <code>true</code>.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["spark.components.Scroller"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "tabFocusEnabled",
        "namespace": "public",
        "bindable": ["tabFocusEnabledChange"],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether this object can receive focus via the TAB key  <p>This is similar to the <code>tabEnabled</code> property used by the Flash Player.</p>  <p>This is usually <code>true</code> for components that handle keyboard input, but some components in controlbars have them set to <code>false</code> because they should not steal focus from another component like an editor. </p>",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "cacheAsBitmap",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "filters",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.managers.ICursorManager",
        "qname": "cursorManager",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Gets the CursorManager that controls the cursor for this component and its peers. Each top-level window has its own instance of a CursorManager; To make sure you're talking to the right one, use this method.",
        "tags": [
        {  "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.managers.IFocusManager",
        "qname": "focusManager",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Gets the FocusManager that controls focus for this component and its peers. Each popup has its own focus loop and therefore its own instance of a FocusManager. To make sure you're talking to the right one, use this method.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.resources.IResourceManager",
        "qname": "resourceManager",
        "namespace": "protected",
        "bindable": ["unused"],
        "details": [],
        "deprecated": {},
          "description": "A reference to the object which manages all of the application's localized resources. This is a singleton instance which implements the IResourceManager interface.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.styles.IStyleManager2",
        "qname": "styleManager",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the StyleManager instance used by this component.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.managers.ISystemManager",
        "qname": "systemManager",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the SystemManager object used by this component.",
        "tags": [
        {  "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.core.IFlexModuleFactory",
        "qname": "moduleFactory",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A module factory is used as context for using embedded fonts and for finding the style manager that controls the styles for this component.",
        "tags": [
        {  "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": "mxmlDocument",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A reference to the document object associated with this UIComponent. A document object is an Object at the top of the hierarchy of a Flex application, MXML component, or AS component.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "addedToParent",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "void",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Object",
        "qname": "parentApplication",
        "namespace": "public",
        "bindable": ["initialize"],
        "details": [],
        "deprecated": {},
          "description": "A reference to the Application object that contains this UIComponent instance. This Application object might exist in a SWFLoader control in another Application, and so on, creating a chain of Application objects that can be walked using parentApplication.  <p>The <code>parentApplication</code> property of an Application is never itself; it is either the Application into which it was loaded or null (for the top-level Application).</p>  <p>Walking the application chain using the <code>parentApplication</code> property is similar to walking the document chain using the <code>parentDocument</code> property. You can access the top-level application using the <code>application</code> property of the Application class.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "Object",
        "qname": "parentMxmlDocument",
        "namespace": "public",
        "bindable": ["initialize"],
        "details": [],
        "deprecated": {},
          "description": "A reference to the parent component object for this UIComponent. A component object is a UIComponent at the top of the hierarchy of a Flex application, MXML component, or AS component.  <p>For the Application object, the <code>parentDocument</code> property is null. This property  is useful in MXML scripts to go up a level in the chain of document objects. It can be used to walk this chain using <code>parentDocument.parentDocument</code>, and so on.</p>  <p>It is typed as Object so that authors can access properties and methods on ancestor document objects without casting.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "measuredMinWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The default minimum width of the component, in pixels. This value is set by the <code>measure()</code> method.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "measuredMinHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The default minimum height of the component, in pixels. This value is set by the <code>measure()</code> method.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "measuredWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The default width of the component, in pixels. This value is set by the <code>measure()</code> method.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "measuredHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The default height of the component, in pixels. This value is set by the <code>measure()</code> method.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "percentWidth",
        "namespace": "public",
        "bindable": ["resize"],
        "details": ["override"],
        "deprecated": {},
          "description": "Specifies the width of a component as a percentage of its parent's size. Allowed values are 0-100. The default value is NaN. Setting the <code>width</code> or <code>explicitWidth</code> properties resets this property to NaN.  <p>This property returns a numeric value only if the property was previously set; it does not reflect the exact size of the component in percent.</p>  <p>This property is always set to NaN for the UITextField control.</p>  <p>When used with Spark layouts, this property is used to calculate the width of the component's bounds after scaling and rotation. For example if the component is rotated at 90 degrees, then specifying <code>percentWidth</code> will affect the component's height.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "percentHeight",
        "namespace": "public",
        "bindable": ["resize"],
        "details": ["override"],
        "deprecated": {},
          "description": "Specifies the height of a component as a percentage of its parent's size. Allowed values are 0-100. The default value is NaN. Setting the <code>height</code> or <code>explicitHeight</code> properties resets this property to NaN.  <p>This property returns a numeric value only if the property was previously set; it does not reflect the exact size of the component in percent.</p>  <p>This property is always set to NaN for the UITextField control.</p>  <p>When used with Spark layouts, this property is used to calculate the height of the component's bounds after scaling and rotation. For example if the component is rotated at 90 degrees, then specifying <code>percentHeight</code> will affect the component's width.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "minWidth",
        "namespace": "public",
        "bindable": ["explicitMinWidthChanged"],
        "details": [],
        "deprecated": {},
          "description": "The minimum recommended width of the component to be considered by the parent during layout. This value is in the component's coordinates, in pixels. The default value depends on the component's implementation.  <p>If the application developer sets the value of minWidth, the new value is stored in explicitMinWidth. The default value of minWidth does not change. As a result, at layout time, if minWidth was explicitly set by the application developer, then the value of explicitMinWidth is used for the component's minimum recommended width. If minWidth is not set explicitly by the application developer, then the value of measuredMinWidth is used.</p>  <p>This value is used by the container in calculating the size and position of the component. It is not used by the component itself in determining its default size. Thus this property may not have any effect if parented by Container, or containers that don't factor in this property. Because the value is in component coordinates, the true <code>minWidth</code> with respect to its parent is affected by the <code>scaleX</code> property.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "minHeight",
        "namespace": "public",
        "bindable": ["explicitMinHeightChanged"],
        "details": [],
        "deprecated": {},
          "description": "The minimum recommended height of the component to be considered by the parent during layout. This value is in the component's coordinates, in pixels. The default value depends on the component's implementation.  <p>If the application developer sets the value of minHeight, the new value is stored in explicitMinHeight. The default value of minHeight does not change. As a result, at layout time, if minHeight was explicitly set by the application developer, then the value of explicitMinHeight is used for the component's minimum recommended height. If minHeight is not set explicitly by the application developer, then the value of measuredMinHeight is used.</p>  <p>This value is used by the container in calculating the size and position of the component. It is not used by the component itself in determining its default size. Thus this property may not have any effect if parented by Container, or containers that don't factor in this property. Because the value is in component coordinates, the true <code>minHeight</code> with respect to its parent is affected by the <code>scaleY</code> property.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "maxWidth",
        "namespace": "public",
        "bindable": ["explicitMaxWidthChanged"],
        "details": [],
        "deprecated": {},
          "description": "The maximum recommended width of the component to be considered by the parent during layout. This value is in the component's coordinates, in pixels. The default value of this property is set by the component developer.  <p>The component developer uses this property to set an upper limit on the width of the component.</p>  <p>If the application developer overrides the default value of maxWidth, the new value is stored in explicitMaxWidth. The default value of maxWidth does not change. As a result, at layout time, if maxWidth was explicitly set by the application developer, then the value of explicitMaxWidth is used for the component's maximum recommended width. If maxWidth is not set explicitly by the user, then the default value is used.</p>  <p>This value is used by the container in calculating the size and position of the component. It is not used by the component itself in determining its default size. Thus this property may not have any effect if parented by Container, or containers that don't factor in this property. Because the value is in component coordinates, the true <code>maxWidth</code> with respect to its parent is affected by the <code>scaleX</code> property. Some components have no theoretical limit to their width. In those cases their <code>maxWidth</code> is set to <code>UIComponent.DEFAULT_MAX_WIDTH</code>.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["10000"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "maxHeight",
        "namespace": "public",
        "bindable": ["explicitMaxHeightChanged"],
        "details": [],
        "deprecated": {},
          "description": "The maximum recommended height of the component to be considered by the parent during layout. This value is in the component's coordinates, in pixels. The default value of this property is set by the component developer.  <p>The component developer uses this property to set an upper limit on the height of the component.</p>  <p>If the application developer overrides the default value of maxHeight, the new value is stored in explicitMaxHeight. The default value of maxHeight does not change. As a result, at layout time, if maxHeight was explicitly set by the application developer, then the value of explicitMaxHeight is used for the component's maximum recommended height. If maxHeight is not set explicitly by the user, then the default value is used.</p>  <p>This value is used by the container in calculating the size and position of the component. It is not used by the component itself in determining its default size.  Thus this property may not have any effect if parented by Container, or containers that don't factor in this property. Because the value is in component coordinates, the true <code>maxHeight</code> with respect to its parent is affected by the <code>scaleY</code> property. Some components have no theoretical limit to their height. In those cases their <code>maxHeight</code> is set to <code>UIComponent.DEFAULT_MAX_HEIGHT</code>.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["10000"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "explicitMinWidth",
        "namespace": "public",
        "bindable": ["explicitMinWidthChanged"],
        "details": [],
        "deprecated": {},
          "description": "The minimum recommended width of the component to be considered by the parent during layout. This value is in the component's coordinates, in pixels.  <p>Application developers typically do not set the explicitMinWidth property. Instead, they set the value of the minWidth property, which sets the explicitMinWidth property. The value of minWidth does not change.</p>  <p>At layout time, if minWidth was explicitly set by the application developer, then the value of explicitMinWidth is used. Otherwise, the value of measuredMinWidth is used.</p>  <p>This value is used by the container in calculating the size and position of the component. It is not used by the component itself in determining its default size. Thus this property may not have any effect if parented by Container, or containers that don't factor in this property. Because the value is in component coordinates, the true <code>minWidth</code> with respect to its parent is affected by the <code>scaleX</code> property.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "explicitMinHeight",
        "namespace": "public",
        "bindable": ["explictMinHeightChanged"],
        "details": [],
        "deprecated": {},
          "description": "The minimum recommended height of the component to be considered by the parent during layout. This value is in the component's coordinates, in pixels.  <p>Application developers typically do not set the explicitMinHeight property. Instead, they set the value of the minHeight property, which sets the explicitMinHeight property. The value of minHeight does not change.</p>  <p>At layout time, if minHeight was explicitly set by the application developer, then the value of explicitMinHeight is used. Otherwise, the value of measuredMinHeight is used.</p>  <p>This value is used by the container in calculating the size and position of the component. It is not used by the component itself in determining its default size. Thus this property may not have any effect if parented by Container, or containers that don't factor in this property. Because the value is in component coordinates, the true <code>minHeight</code> with respect to its parent is affected by the <code>scaleY</code> property.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "explicitMaxWidth",
        "namespace": "public",
        "bindable": ["explicitMaxWidthChanged"],
        "details": [],
        "deprecated": {},
          "description": "The maximum recommended width of the component to be considered by the parent during layout. This value is in the component's coordinates, in pixels.  <p>Application developers typically do not set the explicitMaxWidth property. Instead, they set the value of the maxWidth property, which sets the explicitMaxWidth property. The value of maxWidth does not change.</p>  <p>At layout time, if maxWidth was explicitly set by the application developer, then the value of explicitMaxWidth is used. Otherwise, the default value for maxWidth is used.</p>  <p>This value is used by the container in calculating the size and position of the component. It is not used by the component itself in determining its default size. Thus this property may not have any effect if parented by Container, or containers that don't factor in this property. Because the value is in component coordinates, the true <code>maxWidth</code> with respect to its parent is affected by the <code>scaleX</code> property. Some components have no theoretical limit to their width. In those cases their <code>maxWidth</code> is set to <code>UIComponent.DEFAULT_MAX_WIDTH</code>.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "explicitMaxHeight",
        "namespace": "public",
        "bindable": ["explicitMaxHeightChanged"],
        "details": [],
        "deprecated": {},
          "description": "The maximum recommended height of the component to be considered by the parent during layout. This value is in the component's coordinates, in pixels.  <p>Application developers typically do not set the explicitMaxHeight property. Instead, they set the value of the maxHeight property, which sets the explicitMaxHeight property. The value of maxHeight does not change.</p>  <p>At layout time, if maxHeight was explicitly set by the application developer, then the value of explicitMaxHeight is used. Otherwise, the default value for maxHeight is used.</p>  <p>This value is used by the container in calculating the size and position of the component. It is not used by the component itself in determining its default size. Thus this property may not have any effect if parented by Container, or containers that don't factor in this property. Because the value is in component coordinates, the true <code>maxHeight</code> with respect to its parent is affected by the <code>scaleY</code> property. Some components have no theoretical limit to their height. In those cases their <code>maxHeight</code> is set to <code>UIComponent.DEFAULT_MAX_HEIGHT</code>.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "alpha",
        "namespace": "public",
        "bindable": ["alphaChanged"],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "includeInLayout",
        "namespace": "public",
        "bindable": ["includeInLayoutChanged"],
        "details": [],
        "deprecated": {},
          "description": "Specifies whether this component is included in the layout of the parent container. If <code>true</code>, the object is included in its parent container's layout and is sized and positioned by its parent container as per its layout rules. If <code>false</code>, the object size and position are not affected by its parent container's layout.",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "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": "currentState",
        "namespace": "public",
        "bindable": ["currentStateChange"],
        "details": [],
        "deprecated": {},
          "description": "The current view state of the component. Set to <code>&quot;&quot;</code> or <code>null</code> to reset the component back to its base state.  <p>When you use this property to set a component's state, Flex applies any transition you have defined. You can also use the <code>setCurrentState()</code> method to set the current state; this method can optionally change states without applying a transition.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["#setCurrentState()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "setCurrentState",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "void",
          "params": [{ "name": "stateName", "type": "String"},
        { "name": "playTransition", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "dispatchUpdateComplete",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "void",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "states",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The view states that are defined for this component. You can specify the <code>states</code> property only on the root of the application or on the root tag of an MXML component. The compiler generates an error if you specify it on any other control.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "transitions",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "An Array of Transition objects, where each Transition object defines a set of effects to play when a view state change occurs.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.states.Transition"]},
            {  "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": "styleName",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The class style used by this component. This can be a String, CSSStyleDeclaration or an IStyleClient.  <p>If this is a String, it is the name of one or more whitespace delimited class declarations in an <code>&lt;fx:Style&gt;</code> tag or CSS file. You do not include the period in the <code>styleName</code>. For example, if you have a class style named <code>&quot;.bigText&quot;</code>, set the <code>styleName</code> property to <code>&quot;bigText&quot;</code> (no period).</p>  <p>If this is an IStyleClient (typically a UIComponent), all styles in the <code>styleName</code> object are used by this component.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "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": "toolTip",
        "namespace": "public",
        "bindable": ["toolTipChanged"],
        "details": [],
        "deprecated": {},
          "description": "Text to display in the ToolTip.",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "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": "isPopUp",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Set to <code>true</code> by the PopUpManager to indicate that component has been popped up.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "$uibase_addChild",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "mx.core.IUIComponent",
          "params": [{ "name": "child", "type": "mx.core.IUIComponent"}]}
      ,
      { "type": "method",
        "qname": "$uibase_addChildAt",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "mx.core.IUIComponent",
          "params": [{ "name": "child", "type": "mx.core.IUIComponent"},
        { "name": "index", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "$uibase_removeChild",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "mx.core.IUIComponent",
          "params": [{ "name": "child", "type": "mx.core.IUIComponent"}]}
      ,
      { "type": "method",
        "qname": "$uibase_removeChildAt",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "mx.core.IUIComponent",
          "params": [{ "name": "index", "type": "int"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "numChildren",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "numElements",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "copy",
               "values": ["org.apache.royale.core.IParent#numElements"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.0"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.WrappedHTMLElement"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "initialize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Initializes the internal structure of this component.  <p>Initializing a UIComponent is the fourth step in the creation of a visual component instance, and happens automatically the first time that the instance is added to a parent. Therefore, you do not generally need to call <code>initialize()</code>; the Flex framework calls it for you from UIComponent's override of the <code>addChild()</code> and <code>addChildAt()</code> methods.</p>  <p>The first step in the creation of a visual component instance is construction, with the <code>new</code> operator:</p>  <pre>\\n var okButton:Button = new Button();</pre>  <p>After construction, the new Button instance is a solitary DisplayObject; it does not yet have a UITextField as a child to display its label, and it doesn't have a parent.</p>  <p>The second step is configuring the newly-constructed instance with the appropriate properties, styles, and event handlers:</p>  <pre>\\n okButton.label = &quot;OK&quot;;\\n okButton.setStyle(&quot;cornerRadius&quot;, 0);\\n okButton.addEventListener(MouseEvent.CLICK, clickHandler);</pre>  <p>The third step is adding the instance to a parent:</p>  <pre>\\n someContainer.addChild(okButton);</pre>  <p>A side effect of calling <code>addChild()</code> or <code>addChildAt()</code>, when adding a component to a parent for the first time, is that <code>initialize</code> gets automatically called.</p>  <p>This method first dispatches a <code>preinitialize</code> event, giving developers using this component a chance to affect it before its internal structure has been created. Next it calls the <code>createChildren()</code> method to create the component's internal structure; for a Button, this method creates and adds the UITextField for the label. Then it dispatches an <code>initialize</code> event, giving developers a chance to affect the component after its internal structure has been created.</p>  <p>Note that it is the act of attaching a component to a parent for the first time that triggers the creation of its internal structure. If its internal structure includes other UIComponents, then this is a recursive process in which the tree of DisplayObjects grows by one leaf node at a time.</p>  <p>If you are writing a component, you do not need to override this method.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "initializationComplete",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Finalizes the initialization of this component.  <p>This method is the last code that executes when you add a component to a parent for the first time using <code>addChild()</code> or <code>addChildAt()</code>. It handles some housekeeping related to dispatching the <code>initialize</code> event. If you are writing a component, you do not need to override this method.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "createChildren",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Create child objects of the component. This is an advanced method that you might override when creating a subclass of UIComponent.  <p>A component that creates other components or objects within it is called a composite component. For example, the Flex ComboBox control is actually made up of a TextInput control to define the text area of the ComboBox, and a Button control to define the ComboBox arrow. Components implement the <code>createChildren()</code> method to create child objects (such as other components) within the component.</p>  <p>From within an override of the <code>createChildren()</code> method, you call the <code>addChild()</code> method to add each child object. </p>  <p>You do not call this method directly. Flex calls the <code>createChildren()</code> method in response to the call to the <code>addChild()</code> method to add the component to its parent. </p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Array",
        "qname": "MXMLDescriptor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "copy",
               "values": ["org.apache.royale.core.Application#MXMLDescriptor"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.8"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "generateMXMLAttributes",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "copy",
               "values": ["org.apache.royale.core.Application#generateMXMLAttributes()"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.8"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "data", "type": "Array"}]}
      ,
      { "type": "field",
        "qname": "mxmlContent",
        "return": "Array",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "copy",
               "values": ["org.apache.royale.core.ItemRendererClassFactory#mxmlContent"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.8"]},
            {  "tagName": "langversion",
               "values": ["3.0"]},
            {  "tagName": "royalesuppresspublicvarwarning",
               "values": []}  ]},
      { "type": "method",
        "qname": "invalidateProperties",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Marks a component so that its <code>commitProperties()</code> method gets called during a later screen update.  <p>Invalidation is a useful mechanism for eliminating duplicate work by delaying processing of changes to a component until a later screen update. For example, if you want to change the text color and size, it would be wasteful to update the color immediately after you change it and then update the size when it gets set. It is more efficient to change both properties and then render the text with its new size and color once.</p>  <p>Invalidation methods rarely get called. In general, setting a property on a component automatically calls the appropriate invalidation method.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "invalidateSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Marks a component so that its <code>measure()</code> method gets called during a later screen update.  <p>Invalidation is a useful mechanism for eliminating duplicate work by delaying processing of changes to a component until a later screen update. For example, if you want to change the text and font size, it would be wasteful to update the text immediately after you change it and then update the size when it gets set. It is more efficient to change both properties and then render the text with its new size once.</p>  <p>Invalidation methods rarely get called. In general, setting a property on a component automatically calls the appropriate invalidation method.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.events.IEventDispatcher"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "invalidateParentSizeAndDisplayList",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Helper method to invalidate parent size and display list if this object affects its layout (includeInLayout is true).",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "field",
        "qname": "invalidateDisplayListFlag",
        "return": "Boolean",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "method",
        "qname": "invalidateDisplayList",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Marks a component so that its <code>updateDisplayList()</code> method gets called during a later screen update.  <p>Invalidation is a useful mechanism for eliminating duplicate work by delaying processing of changes to a component until a later screen update. For example, if you want to change the width and height, it would be wasteful to update the component immediately after you change the width and then update again with the new height. It is more efficient to change both properties and then render the component with its new size once.</p>  <p>Invalidation methods rarely get called. In general, setting a property on a component automatically calls the appropriate invalidation method.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "localToGlobal",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "localToGlobal",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.geom.Point",
          "params": [{ "name": "value", "type": "org.apache.royale.geom.Point"}]}
      ,
      { "type": "method",
        "qname": "globalToLocal",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "globalToLocal",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.geom.Point",
          "params": [{ "name": "value", "type": "org.apache.royale.geom.Point"}]}
      ,
      { "type": "method",
        "qname": "getFocus",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "mx.core.UIComponent",
          "params": []}
      ,
      { "type": "method",
        "qname": "styleChanged",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Detects changes to style properties. When any style property is set, Flex calls the <code>styleChanged()</code> method, passing to it the name of the style being set.  <p>This is an advanced method that you might override when creating a subclass of UIComponent. When you create a custom component, you can override the <code>styleChanged()</code> method to check the style name passed to it, and handle the change accordingly. This lets you override the default behavior of an existing style, or add your own custom style properties.</p>  <p>If you handle the style property, your override of the <code>styleChanged()</code> method should call the <code>invalidateDisplayList()</code> method to cause Flex to execute the component's <code>updateDisplayList()</code> method at the next screen update.</p>  component have changed.",
        "tags": [
        {  "tagName": "param",
               "values": ["styleProp The name of the style property, or null if all styles for this"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "styleProp", "type": "String"}]}
      ,
      { "type": "method",
        "qname": "validateNow",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Validate and update the properties and layout of this object and redraw it, if necessary.  Processing properties that require substantial computation are normally not processed until the script finishes executing. For example setting the <code>width</code> property is delayed, because it can require recalculating the widths of the objects children or its parent. Delaying the processing prevents it from being repeated multiple times if the script sets the <code>width</code> property more than once. This method lets you manually override this behavior.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "callLater",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Queues a function to be called later.  <p>Before each update of the screen, Flash Player or AIR calls the set of functions that are scheduled for the update. Sometimes, a function should be called in the next update to allow the rest of the code scheduled for the current update to be executed. Some features, like effects, can cause queued functions to be delayed until the feature completes.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["method Reference to a method to be executed later.", "args Array of Objects that represent the arguments to pass to the method."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "method", "type": "Function"},
        { "name": "args", "type": "Array"}]}
      ,
      { "type": "method",
        "qname": "validateProperties",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Used by layout logic to validate the properties of a component by calling the <code>commitProperties()</code> method. In general, subclassers should override the <code>commitProperties()</code> method and not this method.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "commitProperties",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Processes the properties set on the component. This is an advanced method that you might override when creating a subclass of UIComponent.  <p>You do not call this method directly. Flex calls the <code>commitProperties()</code> method when you use the <code>addChild()</code> method to add a component to a container, or when you call the <code>invalidateProperties()</code> method of the component. Calls to the <code>commitProperties()</code> method occur before calls to the <code>measure()</code> method. This lets you set property values that might be used by the <code>measure()</code> method.</p>  <p>Some components have properties that affect the number or kinds of child objects that they need to create, or have properties that interact with each other, such as the <code>horizontalScrollPolicy</code> and <code>horizontalScrollPosition</code> properties. It is often best at startup time to process all of these properties at one time to avoid duplicating work.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "validateSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "recursive", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "measure",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Calculates the default size, and optionally the default minimum size, of the component. This is an advanced method that you might override when creating a subclass of UIComponent.  <p>You do not call this method directly. Flex calls the <code>measure()</code> method when the component is added to a container using the <code>addChild()</code> method, and when the component's <code>invalidateSize()</code> method is called. </p>  <p>When you set a specific height and width of a component, Flex does not call the <code>measure()</code> method, even if you explicitly call the <code>invalidateSize()</code> method. That is, Flex only calls the <code>measure()</code> method if the <code>explicitWidth</code> property or the <code>explicitHeight</code> property of the component is NaN. </p>  <p>In your override of this method, you must set the <code>measuredWidth</code> and <code>measuredHeight</code> properties to define the default size. You can optionally set the <code>measuredMinWidth</code> and <code>measuredMinHeight</code> properties to define the default minimum size.</p>  <p>Most components calculate these values based on the content they are displaying, and from the properties that affect content display. A few components simply have hard-coded default values. </p>  <p>The conceptual point of <code>measure()</code> is for the component to provide its own natural or intrinsic size as a default. Therefore, the <code>measuredWidth</code> and <code>measuredHeight</code> properties should be determined by factors such as:</p> <ul> <li>The amount of text the component needs to display.</li> <li>The styles, such as <code>fontSize</code>, for that text.</li> <li>The size of a JPEG image that the component displays.</li> <li>The measured or explicit sizes of the component's children.</li> <li>Any borders, margins, and gaps.</li> </ul>  <p>In some cases, there is no intrinsic way to determine default values. For example, a simple GreenCircle component might simply set measuredWidth = 100 and measuredHeight = 100 in its <code>measure()</code> method to provide a reasonable default size. In other cases, such as a TextArea, an appropriate computation (such as finding the right width and height that would just display all the text and have the aspect ratio of a Golden Rectangle) might be too time-consuming to be worthwhile.</p>  <p>The default implementation of <code>measure()</code> sets <code>measuredWidth</code>, <code>measuredHeight</code>, <code>measuredMinWidth</code>, and <code>measuredMinHeight</code> to <code>0</code>.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "getExplicitOrMeasuredWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A convenience method for determining whether to use the explicit or measured width  or measuredWidth if not.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["A Number which is explicitWidth if defined"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": []}
      ,
      { "type": "method",
        "qname": "getExplicitOrMeasuredHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A convenience method for determining whether to use the explicit or measured height  or measuredHeight if not.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["A Number which is explicitHeight if defined"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "Number",
        "qname": "unscaledWidth",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A convenience method for determining the unscaled width of the component All of a component's drawing and child layout should be done within a bounding rectangle of this width, which is also passed as an argument to <code>updateDisplayList()</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["A Number which is unscaled width of the component."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "Number",
        "qname": "unscaledHeight",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A convenience method for determining the unscaled height of the component. All of a component's drawing and child layout should be done within a bounding rectangle of this height, which is also passed as an argument to <code>updateDisplayList()</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["A Number which is unscaled height of the component."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "measureText",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Measures the specified text, assuming that it is displayed in a single-line UITextField (or UIFTETextField) using a UITextFormat determined by the styles of this UIComponent.  Does not work for Spark components since they don't use UITextField (or UIFTETextField).  To measure text in Spark components, get the measurements of a spark.components.Label or spark.components.RichText",
        "tags": [
        {  "tagName": "param",
               "values": ["text A String specifying the text to measure."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["A TextLineMetrics object containing the text measurements."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.core.TextLineMetrics",
          "params": [{ "name": "text", "type": "String"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.geom.Rectangle",
        "qname": "screen",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns an object that contains the size and position of the base drawing surface for this object.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "validateDisplayList",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "updateDisplayList",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Draws the object and/or sizes and positions its children. This is an advanced method that you might override when creating a subclass of UIComponent.  <p>You do not call this method directly. Flex calls the <code>updateDisplayList()</code> method when the component is added to a container using the <code>addChild()</code> method, and when the component's <code>invalidateDisplayList()</code> method is called. </p>  <p>If the component has no children, this method is where you would do programmatic drawing using methods on the component's Graphics object such as <code>graphics.drawRect()</code>.</p>  <p>If the component has children, this method is where you would call the <code>move()</code> and <code>setActualSize()</code> methods on its children.</p>  <p>Components can do programmatic drawing even if they have children. In doing either, use the component's <code>unscaledWidth</code> and <code>unscaledHeight</code> as its bounds.</p>  <p>It is important to use <code>unscaledWidth</code> and <code>unscaledHeight</code> instead of the <code>width</code> and <code>height</code> properties.</p>  in the component's coordinates, regardless of the value of the <code>scaleX</code> property of the component.  in the component's coordinates, regardless of the value of the <code>scaleY</code> property of the component.",
        "tags": [
        {  "tagName": "param",
               "values": ["unscaledWidth Specifies the width of the component, in pixels,", "unscaledHeight Specifies the height of the component, in pixels,"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "unscaledWidth", "type": "Number"},
        { "name": "unscaledHeight", "type": "Number"}]}
      ,
      { "type": "method",
        "qname": "isWidthSizedToContent",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "Boolean",
          "params": []}
      ,
      { "type": "method",
        "qname": "isHeightSizedToContent",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "Boolean",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "left",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "<p>For components, this layout constraint property is a facade on top of the similarly-named style. To set a state-specific value of the property in MXML to its default value of <code>undefined</code>, use the &#64;Clear() directive. For example, in MXML code, <code>left.s2=&quot;&#64;Clear()&quot;</code> unsets the <code>left</code> constraint in state s2. Or in ActionScript code, <code>button.left = undefined</code> unsets the <code>left</code> constraint on <code>button</code>.</p>",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "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": "right",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "<p>For components, this layout constraint property is a facade on top of the similarly-named style. To set the property to its default value of <code>undefined</code>, use the &#64;Clear() directive in MXML or the <code>undefined</code> value in ActionScript code. For example, in MXML code, <code>right.s2=&quot;&#64;Clear()&quot;</code> unsets the <code>right</code> constraint in state s2. Or in ActionScript code, <code>button.right = undefined</code> unsets the <code>right</code> constraint on <code>button</code>.</p>",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "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": "top",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "<p>For components, this layout constraint property is a facade on top of the similarly-named style. To set the property to its default value of <code>undefined</code>, use the &#64;Clear() directive in MXML or the <code>undefined</code> value in ActionScript code. For example, in MXML code, <code>top.s2=&quot;&#64;Clear()&quot;</code> unsets the <code>top</code> constraint in state s2. Or in ActionScript code, <code>button.top = undefined</code> unsets the <code>top</code> constraint on <code>button</code>.</p>",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "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": "bottom",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "<p>For components, this layout constraint property is a facade on top of the similarly-named style. To set the property to its default value of <code>undefined</code>, use the &#64;Clear() directive in MXML or the <code>undefined</code> value in ActionScript code. For example, in MXML code, <code>bottom.s2=&quot;&#64;Clear()&quot;</code> unsets the <code>bottom</code> constraint in state s2. Or in ActionScript code, <code>button.bottom = undefined</code> unsets the <code>bottom</code> constraint on <code>button</code>.</p>",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "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": "paddingLeft",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Number of pixels between the container's left border and the left of its content area.",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "paddingRight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Number of pixels between the container's right border and the right of its content area.",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "paddingTop",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Number of pixels between the container's top border and the top of its content area.",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "paddingBottom",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Number of pixels between the container's bottom border and the bottom of its content area.",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "horizontalCenter",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "<p>For components, this layout constraint property is a facade on top of the similarly-named style. To set the property to its default value of <code>undefined</code>, use the &#64;Clear() directive in MXML or the <code>undefined</code> value in ActionScript code. For example, in MXML code, <code>horizontalCenter.s2=&quot;&#64;Clear()&quot;</code> unsets the <code>horizontalCenter</code> constraint in state s2. Or in ActionScript code, <code>button.horizontalCenter = undefined</code> unsets the <code>horizontalCenter</code> constraint on <code>button</code>.</p>",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "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": "verticalCenter",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "<p>For components, this layout constraint property is a facade on top of the similarly-named style. To set the property to its default value of <code>undefined</code>, use the &#64;Clear() directive in MXML or the <code>undefined</code> value in ActionScript code. For example, in MXML code, <code>verticalCenter.s2=&quot;&#64;Clear()&quot;</code> unsets the <code>verticalCenter</code> constraint in state s2. Or in ActionScript code, <code>button.verticalCenter = undefined</code> unsets the <code>verticalCenter</code> constraint on <code>button</code>.</p>",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "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": "fontWeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "cornerRadius",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "fontFamily",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "uid",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "showErrorSkin",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "showErrorTip",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "baseline",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "fontSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "fontStyle",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "textAlign",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "color",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "selectedField",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-only",
        "return": "Number",
        "qname": "contentMouseX",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-only",
        "return": "Number",
        "qname": "contentMouseY",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "method",
        "qname": "move",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Moves the component to a specified position within its parent. Calling this method is exactly the same as setting the component's <code>x</code> and <code>y</code> properties.  <p>If you are overriding the <code>updateDisplayList()</code> method in a custom component, call the <code>move()</code> method rather than setting the <code>x</code> and <code>y</code> properties. The difference is that the <code>move()</code> method changes the location of the component and then dispatches a <code>move</code> event when you call the method, while setting the <code>x</code> and <code>y</code> properties changes the location of the component and dispatches the event on the next screen refresh.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["x Left position of the component within its parent.", "y Top position of the component within its parent."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "x", "type": "Number"},
        { "name": "y", "type": "Number"}]}
      ,
      { "type": "method",
        "qname": "setActualSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Sizes the object. Unlike directly setting the <code>width</code> and <code>height</code> properties, calling the <code>setActualSize()</code> method does not set the <code>explictWidth</code> and <code>explicitHeight</code> properties, so a future layout calculation can result in the object returning to its previous size. This method is used primarily by component developers implementing the <code>updateDisplayList()</code> method, by Effects, and by the LayoutManager.",
        "tags": [
        {  "tagName": "param",
               "values": ["w Width of the object.", "h Height of the object."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "w", "type": "Number"},
        { "name": "h", "type": "Number"}]}
      ,
      { "type": "method",
        "qname": "setFocus",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Sets the focus to this component. The component can in turn pass focus to a subcomponent.  <p><b>Note:</b> Only the TextInput and TextArea controls show a highlight when this method sets the focus. All controls show a highlight when the user tabs to the control.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "clearStyle",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Deletes a style property from this component instance.  <p>This does not necessarily cause the <code>getStyle()</code> method to return <code>undefined</code>.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["styleProp The name of the style property."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "styleProp", "type": "String"}]}
      ,
      { "type": "method",
        "qname": "getStyle",
        "namespace": "public",
        "bindable": ["isStyle"],
        "details": [],
        "deprecated": {},
          "description": "Gets a style property that has been set anywhere in this component's style lookup chain.  <p>This same method is used to get any kind of style property, so the value returned can be a Boolean, String, Number, int, uint (for an RGB color), Class (for a skin), or any kind of object. Therefore the return type is simply specified as ~~.</p>  <p>If you are getting a particular style property, you know its type and often want to store the result in a variable of that type. No casting from ~~ to that type is necessary.</p>  <p> <code> var backgroundColor:uint = getStyle(&quot;backgroundColor&quot;); </code> </p>  <p>If the style property has not been set anywhere in the style lookup chain, the value returned by <code>getStyle()</code> is <code>undefined</code>. Note that <code>undefined</code> is a special value that is not the same as <code>false</code>, <code>&quot;&quot;</code>, <code>NaN</code>, <code>0</code>, or <code>null</code>. No valid style value is ever <code>undefined</code>. You can use the method <code>IStyleManager2.isValidStyleValue()</code> to test whether the value was set.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["styleProp Name of the style property."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["Style value."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "*",
          "params": [{ "name": "styleProp", "type": "String"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "backgroundColor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "method",
        "qname": "setStyle",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Sets a style property on this component instance.  <p>This can override a style that was set globally.</p>  <p>Calling the <code>setStyle()</code> method can result in decreased performance. Use it only when necessary.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["styleProp Name of the style property.", "newValue New value for the style."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "styleProp", "type": "String"},
        { "name": "newValue", "type": "*"}]}
      ,
      { "type": "method",
        "qname": "keyDownHandler",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The event handler called for a <code>keyDown</code> event. If you override this method, make sure to call the base class version.",
        "tags": [
        {  "tagName": "param",
               "values": ["event The event object."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "event", "type": "mx.events.KeyboardEvent"}]}
      ,
      { "type": "method",
        "qname": "keyUpHandler",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The event handler called for a <code>keyUp</code> event. If you override this method, make sure to call the base class version.",
        "tags": [
        {  "tagName": "param",
               "values": ["event The event object."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "event", "type": "mx.events.KeyboardEvent"}]}
      ,
      { "type": "method",
        "qname": "focusInHandler",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The event handler called for a <code>focusIn</code> event. If you override this method, make sure to call the base class version.",
        "tags": [
        {  "tagName": "param",
               "values": ["event The event object."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "event", "type": "mx.events.FocusEvent"}]}
      ,
      { "type": "method",
        "qname": "focusOutHandler",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The event handler called for a <code>focusOut</code> event. If you override this method, make sure to call the base class version.",
        "tags": [
        {  "tagName": "param",
               "values": ["event The event object."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "event", "type": "mx.events.FocusEvent"}]}
      ,
      { "type": "method",
        "qname": "owns",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns <code>true</code> if the chain of <code>owner</code> properties points from <code>child</code> to this UIComponent.",
        "tags": [
        {  "tagName": "param",
               "values": ["child A UIComponent."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["<code>true</code> if the child is parented or owned by this UIComponent."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Boolean",
          "params": [{ "name": "child", "type": "org.apache.royale.core.IUIBase"}]}
      ,
      { "type": "method",
        "qname": "setVisible",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Same as visible setter but does not dispatch events",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "value", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getPreferredBoundsWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getPreferredBoundsHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getMinBoundsWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getMinBoundsHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getMaxBoundsWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getMaxBoundsHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getBoundsXAtSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "width", "type": "Number"},
        { "name": "height", "type": "Number"},
        { "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getBoundsYAtSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "width", "type": "Number"},
        { "name": "height", "type": "Number"},
        { "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getLayoutBoundsWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getLayoutBoundsHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getLayoutBoundsX",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "getLayoutBoundsY",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "setLayoutBoundsPosition",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "x", "type": "Number"},
        { "name": "y", "type": "Number"},
        { "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "setLayoutBoundsSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "width", "type": "Number"},
        { "name": "height", "type": "Number"},
        { "name": "postLayoutTransform", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "dispatchPropertyChangeEvent",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Helper method for dispatching a PropertyChangeEvent when a property is updated.",
        "tags": [
        {  "tagName": "param",
               "values": ["prop Name of the property that changed.", "oldValue Old value of the property.", "value New value of the property."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "prop", "type": "String"},
        { "name": "oldValue", "type": "*"},
        { "name": "value", "type": "*"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "rollOverEffect",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Played when the user rolls the mouse over the component.",
        "tags": [
        {  "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": "rollOutEffect",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Played when the user rolls the mouse so it is no longer over the component.",
        "tags": [
        {  "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": "mouseDownEffect",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Played when the user presses the mouse button.",
        "tags": [
        {  "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": "mouseUpEffect",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Played when the user releases the mouse button.",
        "tags": [
        {  "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": "hideEffect",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Played when the component becomes invisible.",
        "tags": [
        {  "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": "showEffect",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Played when the component becomes visible.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "createInFontContext",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Creates a new object using a context based on the embedded font being used.  <p>This method is used to solve a problem with access to fonts embedded  in an application SWF when the framework is loaded as an RSL (the RSL has its own SWF context). Embedded fonts can only be accessed from the SWF file context in which they were created. By using the context of the application SWF, the RSL can create objects in the application SWF context that has access to the application's  embedded fonts.</p>  <p>Call this method only after the font styles for this object are set.</p>   of the SWF owning the embedded font. If this object is not using an embedded font, the class is created in the context of this object.",
        "tags": [
        {  "tagName": "param",
               "values": ["class The class to create."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The instance of the class created in the context"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Object",
          "params": [{ "name": "classObj", "type": "Class"}]}
      ,
      { "type": "method",
        "qname": "stylesInitialized",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Flex calls the <code>stylesInitialized()</code> method when the styles for a component are first initialized.  <p>This is an advanced method that you might override when creating a subclass of UIComponent. Flex guarantees that your component's styles are fully initialized before the first time your component's <code>measure</code> and <code>updateDisplayList</code> methods are called.  For most components, that is sufficient. But if you need early access to your style values, you can override the stylesInitialized() function to access style properties as soon as they are initialized the first time.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "validationSubField",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Used by a validator to associate a subfield with this component.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "validationResultHandler",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Handles both the <code>valid</code> and <code>invalid</code> events from a validator assigned to this component.  <p>You typically handle the <code>valid</code> and <code>invalid</code> events dispatched by a validator by assigning event listeners to the validators. If you want to handle validation events directly in the component that is being validated, you can override this method to handle the <code>valid</code> and <code>invalid</code> events. You typically call <code>super.validationResultHandler(event)</code> in your override.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.events.ValidationResultEvent"]},
            {  "tagName": "param",
               "values": ["event The event object for the validation."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "event", "type": "mx.events.ValidationResultEvent"}]}
      ,
      { "type": "method",
        "qname": "determineTextFormatFromStyles",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns a UITextFormat object corresponding to the text styles for this UIComponent.  for this UIComponent.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["UITextFormat object corresponding to the text styles"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "mx.core.UITextFormat",
          "params": []}
      ,
      { "type": "method",
        "qname": "addElement",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "void",
          "params": [{ "name": "c", "type": "org.apache.royale.core.IChild"},
        { "name": "dispatchEvent", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "addElementAt",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "void",
          "params": [{ "name": "c", "type": "org.apache.royale.core.IChild"},
        { "name": "index", "type": "int"},
        { "name": "dispatchEvent", "type": "Boolean"}]}
      ,
      { "type": "method",
        "qname": "removeElement",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "void",
          "params": [{ "name": "c", "type": "org.apache.royale.core.IChild"},
        { "name": "dispatchEvent", "type": "Boolean"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.events.IEventDispatcher",
        "qname": "topMostEventDispatcher",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "copy",
               "values": ["org.apache.royale.core.IUIBase#topMostEventDispatcher"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.0"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.WrappedHTMLElement", "org.apache.royale.events.IEventDispatcher"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  ,
  "events": [
  { "qname": "click",
        "type": "mx.events.MouseEvent"
      ,
          "description": "Set a different class for click events so that there aren't dependencies on the flash classes on the JS side.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.0"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "show",
        "type": "mx.events.FlexEvent"
      ,
          "description": "Dispatched when the component has finished its construction and has all initialization properties set.  <p>After the initialization phase, properties are processed, the component is measured, laid out, and drawn, after which the <code>creationComplete</code> event is dispatched.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["= mx.events.FlexEvent.SHOW"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "focusIn",
        "type": "mx.events.FocusEvent"
      ,
          "description": "Dispatched when the component has finished its construction and has all initialization properties set.  <p>After the initialization phase, properties are processed, the component is measured, laid out, and drawn, after which the <code>creationComplete</code> event is dispatched.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["= mx.events.FocusEvent.FOCUS_IN"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "valid",
        "type": "mx.events.FlexEvent"
      ,
          "description": "Dispatched when the component has finished its construction and has all initialization properties set.  <p>After the initialization phase, properties are processed, the component is measured, laid out, and drawn, after which the <code>creationComplete</code> event is dispatched.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["= mx.events.FlexEvent.VALID"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "preinitialize",
        "type": "mx.events.FlexEvent"
      ,
          "description": "The &quot;preinitialize&quot; event gets dispatched after everything about this UIComponent has been initialized, and it has been attached to its parent, but before any of its children have been created.  <p>This allows a &quot;preinitialize&quot; event handler to set properties which affect child creation. Note that this implies that &quot;preinitialize&quot; handlers are called top-down; i.e., parents before children..</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.FlexEvent.PREINITIALIZE"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "initialize",
        "type": "mx.events.FlexEvent"
      ,
          "description": "Dispatched when the component has finished its construction and has all initialization properties set.  <p>After the initialization phase, properties are processed, the component is measured, laid out, and drawn, after which the <code>creationComplete</code> event is dispatched.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.FlexEvent.INITIALIZE"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "creationComplete",
        "type": "mx.events.FlexEvent"
      ,
          "description": "Dispatched when the component has finished its construction, property processing, measuring, layout, and drawing.  <p>At this point, depending on its <code>visible</code> property, the component is not visible even though it has been drawn.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.FlexEvent.CREATION_COMPLETE"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "updateComplete",
        "type": "mx.events.FlexEvent"
      ,
          "description": "Dispatched when an object has had its <code>commitProperties()</code>, <code>measure()</code>, and <code>updateDisplayList()</code> methods called (if needed).  <p>This is the last opportunity to alter the component before it is displayed. All properties have been committed and the component has been measured and layed out.</p>  <p>This event is only dispatched when there are one or more relevant listeners attached to the dispatching object.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.FlexEvent.UPDATE_COMPLETE"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "valueCommit",
        "type": "mx.events.FlexEvent"
      ,
          "description": "Dispatched when values are changed programmatically or by user interaction.  <p>Because a programmatic change triggers this event, make sure that any <code>valueCommit</code> event handler does not change a value that causes another <code>valueCommit</code> event. For example, do not change a control's <code>dataProvider</code> property in a <code>valueCommit</code> event handler. </p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.FlexEvent.VALUE_COMMIT"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "focusOut",
        "type": "mx.events.FocusEvent"
      },
      { "qname": "change",
        "type": "org.apache.royale.events.Event"
      },
      { "qname": "dragEnter",
        "type": "mx.events.DragEvent"
      ,
          "description": "Dispatched by a component when the user moves the mouse over the component during a drag operation. In an application running in Flash Player, the event is dispatched many times when you move the mouse over any component. In an application running in AIR, the event is dispatched only once.  <p>In order to be a valid drop target, you must define a handler for this event. In the handler, you can change the appearance of the drop target to provide visual feedback to the user that the component can accept the drag. For example, you could draw a border around the drop target, or give focus to the drop target.</p>  <p>If you want to accept the drag, you must call the <code>DragManager.acceptDragDrop()</code> method. If you don't call <code>acceptDragDrop()</code>, you do not get any of the other drag events.</p>  <p>In Flash Player, the value of the <code>action</code> property is always <code>DragManager.MOVE</code>, even if you are doing a copy. This is because the <code>dragEnter</code> event occurs before the control recognizes that the Control key is pressed to signal a copy. The <code>action</code> property of the event object for the <code>dragOver</code> event does contain a value that signifies the type of drag operation. You can change the type of drag action by calling the <code>DragManager.showFeedback()</code> method.</p>  <p>In AIR, the default value of the <code>action</code> property is <code>DragManager.COPY</code>.</p>  <p>Because of the way data to a Tree control is structured, the Tree control handles drag and drop differently from the other list-based controls. For the Tree control, the event handler for the <code>dragDrop</code> event only performs an action when you move or copy data in the same Tree control, or copy data to another Tree control. If you drag data from one Tree control and drop it onto another Tree control to move the data, the event handler for the <code>dragComplete</code> event actually performs the work to add the data to the destination Tree control, rather than the event handler for the dragDrop event, and also removes the data from the source Tree control. This is necessary because to reparent the data being moved, Flex must remove it first from the source Tree control.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.managers.DragManager"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.DragEvent.DRAG_ENTER"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "dragDrop",
        "type": "mx.events.DragEvent"
      ,
          "description": "Dispatched by the drop target when the user releases the mouse over it.  <p>You use this event handler to add the drag data to the drop target.</p>  <p>If you call <code>Event.preventDefault()</code> in the event handler for the <code>dragDrop</code> event for a Tree control when dragging data from one Tree control to another, it prevents the drop.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.DragEvent.DRAG_DROP"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "resize",
        "type": "mx.events.ResizeEvent"
      ,
          "description": "Dispatched when the component is resized.  <p>You can resize the component by setting the <code>width</code> or <code>height</code> property, by calling the <code>setActualSize()</code> method, or by setting one of the following properties either on the component or on other components such that the LayoutManager needs to change the <code>width</code> or <code>height</code> properties of the component:</p>  <ul> <li><code>minWidth</code></li> <li><code>minHeight</code></li> <li><code>maxWidth</code></li> <li><code>maxHeight</code></li> <li><code>explicitWidth</code></li> <li><code>explicitHeight</code></li> </ul>  <p>The <code>resize</code> event is not dispatched until after the property changes.</p>  <p>This event only dispatched when there are one or more relevant listeners attached to the dispatching object.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.ResizeEvent.RESIZE"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "move",
        "type": "mx.events.MoveEvent"
      ,
          "description": "Dispatched when the object has moved.  <p>You can move the component by setting the <code>x</code> or <code>y</code> properties, by calling the <code>move()</code> method, by setting one of the following properties either on the component or on other components such that the LayoutManager needs to change the <code>x</code> or <code>y</code> properties of the component:</p>  <ul> <li><code>minWidth</code></li> <li><code>minHeight</code></li> <li><code>maxWidth</code></li> <li><code>maxHeight</code></li> <li><code>explicitWidth</code></li> <li><code>explicitHeight</code></li> </ul>  <p>When you call the <code>move()</code> method, the <code>move</code> event is dispatched before the method returns. In all other situations, the <code>move</code> event is not dispatched until after the property changes.</p>  <p>This event only dispatched when there are one or more relevant listeners attached to the dispatching object.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.MoveEvent.MOVE"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "keyUp",
        "type": "mx.events.KeyboardEvent"
      },
      { "qname": "keyDown",
        "type": "mx.events.KeyboardEvent"
      }]
  }






