{ "type": "class",
  "qname": "mx.messaging.events.MessageAckEvent",
  "baseClassname": "mx.messaging.events.MessageEvent"
  ,
    "description": "The MessageAckEvent class is used to propagate acknowledge messages within the messaging system.",
  "tags": [
  {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["BlazeDS 4", "LCDS 3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]},
      {  "tagName": "royalesuppresspublicvarwarning",
         "values": []}  ],
  "members": [
  { "type": "field",
        "qname": "ACKNOWLEDGE",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The ACKNOWLEDGE event type; dispatched upon receipt of an acknowledgement. <p>The value of this constant is <code>&quot;acknowledge&quot;</code>.</p>  <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>acknowledgeMessage</code></td><td> Utility property to get the message property from MessageEvent as an AcknowledgeMessage.</td></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>correlate</code></td><td> The original Message correlated with this acknowledgement.</td></tr> <tr><td><code>message</code></td><td>The Message associated with this event.</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> </table>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["acknowledge"]},
            {  "tagName": "productversion",
               "values": ["BlazeDS 4", "LCDS 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "createEvent",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Utility method to create a new MessageAckEvent that doesn't bubble and is not cancelable.",
        "tags": [
        {  "tagName": "param",
               "values": ["ack The AcknowledgeMessage this event should dispatch.", "correlation The Message correlated with this acknowledgement."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["BlazeDS 4", "LCDS 3"]},
            {  "tagName": "return",
               "values": ["New MessageAckEvent."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "mx.messaging.events.MessageAckEvent",
          "params": [{ "name": "ack", "type": "mx.messaging.messages.AcknowledgeMessage"},
        { "name": "correlation", "type": "mx.messaging.messages.IMessage"}]}
      ,
      { "type": "method",
        "qname": "mx.messaging.events.MessageAckEvent",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructs an instance of this event with the specified acknowledge message and original correlated message.   list hierarchy.  event can be prevented.",
        "tags": [
        {  "tagName": "param",
               "values": ["type The type for the MessageAckEvent.", "bubbles Specifies whether the event can bubble up the display", "cancelable Indicates whether the behavior associated with the", "ack The AcknowledgeMessage this event should dispatch.", "correlation The message correlated with this acknowledgement."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["BlazeDS 4", "LCDS 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "type", "type": "String"},
        { "name": "bubbles", "type": "Boolean"},
        { "name": "cancelable", "type": "Boolean"},
        { "name": "ack", "type": "mx.messaging.messages.AcknowledgeMessage"},
        { "name": "correlation", "type": "mx.messaging.messages.IMessage"}]}
      ,
      { "type": "field",
        "qname": "correlation",
        "return": "mx.messaging.messages.IMessage",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The original Message correlated with this acknowledgement.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["BlazeDS 4", "LCDS 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.messaging.messages.AcknowledgeMessage",
        "qname": "acknowledgeMessage",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Utility property to get the message property from the MessageEvent as an AcknowledgeMessage.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["BlazeDS 4", "LCDS 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "String",
        "qname": "correlationId",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "method",
        "qname": "clone",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Clones the MessageAckEvent.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["BlazeDS 4", "LCDS 3"]},
            {  "tagName": "return",
               "values": ["Copy of this MessageAckEvent."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.events.Event",
          "params": []}
      ,
      { "type": "method",
        "qname": "toString",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Returns a string representation of the MessageAckEvent.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["BlazeDS 4", "LCDS 3"]},
            {  "tagName": "return",
               "values": ["String representation of the MessageAckEvent."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": []}
      ]
  }
