Return to Snippet

Revision: 3251
at June 27, 2007 05:23 by mswallace


Initial Code
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
    creationComplete="init()">
        <mx:Script>
                <![CDATA[
                        import flash.desktop.DragActions;
                        import mx.controls.Alert;
                        import mx.controls.Image;
                        import flash.filesystem.File;
                        import flash.desktop.TransferableData;
                        import flash.desktop.TransferableFormats;
                        import flash.events.NativeDragEvent;
                        import flash.desktop.DragManager;
                
                        private function init():void{
                            this.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER,onDragIn);
                            this.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP,onDrop);
                            this.addEventListener(NativeDragEvent.NATIVE_DRAG_EXIT,onDragExit);
                        }
                       
                public function onDragIn(event:NativeDragEvent):void{
                   DragManager.acceptDragDrop(this);
                }

                public function onDrop(event:NativeDragEvent):void{
                    DragManager.dropAction = DragActions.COPY;
                    var dropfiles:Array = event.transferable.dataForFormat(TransferableFormats.FILE_LIST_FORMAT) as Array;
                                for each (var file:File in dropfiles){
                                    switch (file.extension){   
                                case "png" :
                                        addImage(file.nativePath);
                                        break;
                                case "jpg" :
                                        addImage(file.nativePath);
                                        break;
                                case "gif" :
                                        addImage(file.nativePath);
                                        break;
                                default:
                                   Alert.show("Unmapped Extension");
                            }
                      }
                }
              
                public function onDragExit(event:NativeDragEvent):void{
                    trace("Drag exit event.");
                }
                
                private function addImage(nativePath:String):void{
                        var i:Image = new Image();
                        if(Capabilities.os.search("Mac") >= 0){
                                i.source = "file://" + nativePath;
                        } else {
                                i.source = nativePath;
                        }
                        this.addChild(i);
                }
       
                ]]>
        </mx:Script>
</mx:WindowedApplication>

Initial URL
http://blog.everythingflex.com/2007/06/18/simple-drag-and-drop-air/

Initial Description


Initial Title
AIR Drag and Drop Files to the Application

Initial Tags
actionscript, 3, Flex

Initial Language
ActionScript 3