Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
Adobe Flex SDK 3.0 (Release)
-
None
-
None
-
Affected OS(s): All OS Platforms
Affected OS(s): All OS Platforms
Language Found: English
Description
The AIR Flex Framework DragManager uses the NativeDragManagerImpl implementation class while the web Flex Framework DragManager uses the DragManagerImpl class. Developers have requested to be able to change the AIR DragManager to use the DragManagerImpl.
The NativeDragManagerImpl is a bridge between the AIR Player's NativeDragManager API and the Flex DragManager API. The AIR NativeDragManager uses the OS drag and drop APIs. It supports dragging between AIR windows and between the OS and AIR. Because the OS is controlling the drag and drop operation, it is not possible to customize the cursors during a drag. Also, there is no control over the drop animation. The behavior is dependent upon the OS and thus will have some inconsistencies across the platforms.
The DragManagerImpl does not use the OS for drag and drop. Instead, it controls the entire behavior. It supports customizing the cursors and provides a drop animation. However, it does not allow dragging between AIR windows and between the OS and AIR.
A possible solution is to allow developers to specify an implementation class at compile time on a per application basis. To get the functionality from both implementations, developers can setup the DragManager to use the DragManagerImpl and then access the NativeDragManager APIs directly. From a practical and functional standpoint, it seems rare that an application would support both types of drag functionality. Dragging from the OS to an AIR window could only be handled using the NativeDragManager. If you start a drag from an AIR window using the DragManagerImpl, it could not be dragged outside of the window.