Lir

Flex Drag and Drop

Lir
Jan 4th, 2012
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?xml version="1.0"?>
  2. <!-- dragdrop\DandDImage.mxml -->
  3. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  4.     xmlns:s="library://ns.adobe.com/flex/spark"
  5.     xmlns:mx="library://ns.adobe.com/flex/mx">
  6.  
  7.     <fx:Script>
  8.         <![CDATA[
  9.             //Import classes so you don't have to use full names.
  10.             import mx.managers.DragManager;
  11.             import mx.core.DragSource;
  12.             import mx.events.DragEvent;
  13.             import flash.events.MouseEvent;
  14.  
  15.             // Embed icon image.
  16.             [Embed(source='assets/globe.jpg')]
  17.             public var globeImage:Class;
  18.  
  19.             // Инициализирует событие претаскивание, может быть не только mouseMove но и
  20.             // другие события мыши
  21.             private function mouseMoveHandler(event:MouseEvent):void
  22.             {                
  23.                 var dragInitiator:Image=Image(event.currentTarget);
  24.                 var ds:DragSource = new DragSource();
  25.                 ds.addData(dragInitiator, "img");              
  26.  
  27.                 DragManager.doDrag(dragInitiator, ds, event);
  28.             }
  29.            
  30.             // Разрешаем ронять объект на канву
  31.             private function dragEnterHandler(event:DragEvent):void {
  32.                 if (event.dragSource.hasFormat("img"))
  33.                 {
  34.                     DragManager.acceptDragDrop(Canvas(event.currentTarget));
  35.                 }
  36.             }
  37.          
  38.             //Определяем новое место где уронили объект
  39.             private function dragDropHandler(event:DragEvent):void {
  40.                 Image(event.dragInitiator).x =
  41.                     Canvas(event.currentTarget).mouseX;
  42.                 Image(event.dragInitiator).y =
  43.                     Canvas(event.currentTarget).mouseY;
  44.             }
  45.         ]]>
  46.     </fx:Script>
  47.    
  48.     <!-- The Canvas is the drag target -->
  49.     <mx:Canvas id="v1"
  50.         width="500" height="500"  
  51.         borderStyle="solid"
  52.         backgroundColor="#DDDDDD"
  53.         dragEnter="dragEnterHandler(event);"
  54.         dragDrop="dragDropHandler(event);">
  55.        
  56.         <!-- The image is the drag initiator. -->
  57.         <s:Image id="myimg"
  58.             source="@Embed(source='assets/globe.jpg')"
  59.             mouseMove="mouseMoveHandler(event);"/>
  60.     </mx:Canvas>
  61. </s:Application>
Advertisement
Add Comment
Please, Sign In to add comment