{ "type": "class",
  "qname": "mx.events.NumericStepperEvent",
  "baseClassname": "org.apache.royale.events.Event"
  ,
    "description": "Represents events that are specific to the NumericStepper control.",
  "tags": [
  {  "tagName": "see",
         "values": ["mx.controls.NumericStepper"]},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["Flex 3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]},
      {  "tagName": "royalesuppresspublicvarwarning",
         "values": []}  ],
  "members": [
  { "type": "field",
        "qname": "CHANGE",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The <code>NumericStepperEvent.CHANGE</code> constant defines the value of the <code>type</code> property of the event object for a <code>change</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>value</code></td><td>The value of the NumericStepper control when the event was dispatched.</td></tr> </table>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["change"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "mx.events.NumericStepperEvent",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.      indicating the type of input action, either <code>InteractionInputType.MOUSE</code> or <code>InteractionInputType.KEYBOARD</code>.",
        "tags": [
        {  "tagName": "param",
               "values": ["type The event type; indicates the action that caused the event.", "bubbles Specifies whether the event can bubble up the display list hierarchy.", "cancelable Specifies whether the behavior associated with the event can be prevented.", "value The value of the NumericStepper control when the event was dispatched.", "triggerEvent If the value changed in response to a user action, contains a value"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "type", "type": "String"},
        { "name": "bubbles", "type": "Boolean"},
        { "name": "cancelable", "type": "Boolean"},
        { "name": "value", "type": "Number"},
        { "name": "triggerEvent", "type": "org.apache.royale.events.Event"}]}
      ,
      { "type": "field",
        "qname": "value",
        "return": "Number",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The value of the NumericStepper control when the event was dispatched.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "triggerEvent",
        "return": "org.apache.royale.events.Event",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "If the value is changed 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 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  }
