{ "type": "class",
  "qname": "mx.managers.CursorManager",
  "baseClassname": ""
  ,
    "description": "The CursorManager class controls a prioritized list of cursors, where the cursor with the highest priority is currently visible. If the cursor list contains more than one cursor with the same priority, the Cursor Manager displays the most recently created cursor.  <p>For example, if your application performs processing that requires the user to wait until the processing completes, you can change the cursor so that it reflects the waiting period. In this case, you can change the cursor to an hourglass or other image.</p>  <p>You also might want to change the cursor to provide feedback to the user to indicate the actions that the user can perform. For example, you can use one cursor image to indicate that user input is enabled, and another to indicate that input is disabled. You can use a JPEG, GIF, PNG, or SVG image, a Sprite object, or a SWF file as the cursor image.</p>  <p>All methods and properties of the CursorManager are static, so you do not need to create an instance of it.</p>  <p>In AIR, each mx.core.Window instance uses its own instance of the CursorManager class. Instead of directly referencing the static methods and properties of the CursorManager class, use the <code>Window.cursorManager</code> property to reference the CursorManager instance for the Window instance. </p>",
  "tags": [
  {  "tagName": "see",
         "values": ["mx.managers.CursorManagerPriority", "mx.core.Window"]},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["Royale 0.9.3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "currentCursorID",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "ID of the current custom cursor, or NO_CURSOR if the system cursor is showing.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "setCursor",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Creates a new cursor and sets an optional priority for the cursor. Adds the new cursor to the cursor list.   the priority level of the cursor. Possible values are <code>CursorManagerPriority.HIGH</code>, <code>CursorManagerPriority.MEDIUM</code>, and <code>CursorManagerPriority.LOW</code>.  of the cursor, in pixels, relative to the mouse pointer.  of the cursor, in pixels, relative to the mouse pointer.  to know which window needs to display the cursor.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.managers.CursorManagerPriority"]},
            {  "tagName": "param",
               "values": ["cursorClass Class of the cursor to display.", "priority Integer that specifies", "xOffset Number that specifies the x offset", "yOffset Number that specifies the y offset", "setter The IUIComponent that set the cursor. Necessary (in multi-window environments)"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "return",
               "values": ["The ID of the cursor."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": [{ "name": "cursorClass", "type": "Class"},
        { "name": "priority", "type": "int"},
        { "name": "xOffset", "type": "Number"},
        { "name": "yOffset", "type": "Number"}]}
      ,
      { "type": "method",
        "qname": "removeCursor",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Removes a cursor from the cursor list. If the cursor being removed is the currently displayed cursor, the CursorManager displays the next cursor in the list, if one exists. If the list becomes empty, the CursorManager displays the default system cursor.",
        "tags": [
        {  "tagName": "param",
               "values": ["cursorID ID of cursor to remove."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "cursorID", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "setBusyCursor",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Displays the busy cursor. The busy cursor has a priority of CursorManagerPriority.LOW. Therefore, if the cursor list contains a cursor with a higher priority, the busy cursor is not displayed until you remove the higher priority cursor. To create a busy cursor at a higher priority level, use the <code>setCursor()</code> method.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "removeBusyCursor",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Removes the busy cursor from the cursor list. If other busy cursor requests are still active in the cursor list, which means you called the <code>setBusyCursor()</code> method more than once, a busy cursor does not disappear until you remove all busy cursors from the list.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ]
  }
