{ "type": "class",
  "qname": "spark.events.DropDownEvent",
  "baseClassname": "org.apache.royale.events.Event"
  ,
    "description": "The DropDownEvent class represents the event object passed to the event listener for the <code>open</code> and <code>close</code> events.",
  "tags": [
  {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "productversion",
         "values": ["Flex 4"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "field",
        "qname": "CLOSE",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The <code>DropDownEvent.CLOSE</code> constant defines the value of the <code>type</code> property of the event object for a <code>close</code> event.  <p>The properties of the event object have the following values:</p> <table class=&quot;innertable&quot;> <tr><th>Property</th><th>Value</th></tr> <tr><td><code>bubbles</code></td><td>false</td></tr> <tr><td><code>cancelable</code></td><td>false</td></tr> <tr><td><code>currentTarget</code></td><td>The Object that defines the event listener that handles the event. For example, if you use <code>myButton.addEventListener()</code> to register an event listener, myButton is the value of the <code>currentTarget</code>. </td></tr> <tr><td><code>target</code></td><td>The Object that dispatched the event; it is not always the Object listening for the event. Use the <code>currentTarget</code> property to always access the Object listening for the event.</td></tr> <tr><td><code>triggerEvent</code></td><td>A value indicating the type of input action that triggered the event.</td></tr> </table>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "eventType",
               "values": ["close"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "OPEN",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The <code>DropDownEvent.OPEN</code> constant defines the value of the <code>type</code> property of the event object for a <code>open</code> event.  <p>The properties of the event object have the following values:</p> <table class=&quot;innertable&quot;> <tr><th>Property</th><th>Value</th></tr> <tr><td><code>bubbles</code></td><td>false</td></tr> <tr><td><code>cancelable</code></td><td>false</td></tr> <tr><td><code>currentTarget</code></td><td>The Object that defines the event listener that handles the event. For example, if you use <code>myButton.addEventListener()</code> to register an event listener, myButton is the value of the <code>currentTarget</code>. </td></tr> <tr><td><code>target</code></td><td>The Object that dispatched the event; it is not always the Object listening for the event. Use the <code>currentTarget</code> property to always access the Object listening for the event.</td></tr> <tr><td><code>triggerEvent</code></td><td>A value indicating the type of input action that triggered the event.</td></tr> </table>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "eventType",
               "values": ["open"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "spark.events.DropDownEvent",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.   up the display list hierarchy.  associated with the event can be prevented.  type of input action that triggered the event",
        "tags": [
        {  "tagName": "param",
               "values": ["type The event type; indicates the action that caused the event.", "bubbles Specifies whether the event can bubble", "cancelable Specifies whether the behavior", "triggerEvent A value indicating the"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "type", "type": "String"},
        { "name": "bubbles", "type": "Boolean"},
        { "name": "cancelable", "type": "Boolean"},
        { "name": "triggerEvent", "type": "org.apache.royale.events.Event"}]}
      ,
      { "type": "field",
        "qname": "triggerEvent",
        "return": "org.apache.royale.events.Event",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "If the control is opened or closed in response to a user action, this property contains a value indicating the type of input action. The value is either <code>InteractionInputType.MOUSE</code> or <code>InteractionInputType.KEYBOARD</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  }
