12.10.07

Ejemplo de Native Drag & Drop en AIR

Publicado en air tagged , , , , a 11:36 pm por Antonio Serrano Guerrero

Una de las nuevas funcionalidades que nos encontramos dentro de la programación en Adobe Air, es la capacidad de poder arrastrar archivos y directorios desde nuestro escritorio, o desde una ventana de explorador del sistema, a nuestra aplicación, y tener así automáticamente una referencia a ellos. Esto se conoce como Native Drag & Drop.

Para utilizar este Drag & Drop, sólamente tenemos que monitorizar desde la aplicación principal dos eventos. El evento NativeDragEnter, que se dispara cuando entramos en nuestra aplicación arrastrando algún archivo, y el evento NativeDragDrop que se ejecuta cuando soltamos los archivos arrastrados dentro de la aplicación. Para ejecutar el NativeDragDrop previamente tenemos que “dar permiso” a la aplicación para aceptar los archivos que estan siendo arrastrados. Esto se realiza con la intrucción DragManager.acceptDragDrop(this), y se utiliza cuando comprobamos los archivos en el evento NativeDragEnter.

Ambos eventos reciben como parámetro un objeto de la clase NativeDragEvent, dentro del cual, tenemos una propiedad llamada clipboard, que es un objeto de la clase Clipboard, que contiene toda la información de los archivos que estamos arrastrando.

Desde este link podéis descargar el código fuenta de un ejemplo sencillo de utilización. Se trata de un programa que a través de Native Drag & Drop muestra la información de los archivos que le estamos pasando en un FileSystemDataGrid. Sólo admite archivos con extensión .mp3, si dentro de los archivos que arrastramos hay un archivo con otra extensión, o un directorio, rechaza el Drag & Drop.

Podéis descargar el archivo ejecutable y ver el código fuente pulsando con el botón derecho en la aplicación y dándole a view source (es necesario tener el runtime de AIR), o descargar el código fuente y compilarlo en vuestro flex builder.

Espero que sirva de ayuda. Un saludo!!

Editado: Se me olvido mencionar que este ejemplo está compilado con la beta 2 del runtime de AIR. Como muy bien dice ablesa, si solo tienes instalada la beta 3 del runtime, el ejemplo no funcionará. Habrá que tener instalada la beta2.

3 comentarios »

  1. ablesa escribió,

    Hola Antonio,
    He probado con la version del Runtime Beta 3 de AIR y no funciona la instalacion del ejemplo.
    Da un mensaje tal que este:
    “This application requires a version of Adobe AIR which is no longer supported. Please contact the application author for an updated version.”
    En adobe labs comentan que si tenemos un ejemplo empaquetado para Beta 2, tenemos que instalar primero la beta 2 de AIR y luego la Beta 3.
    Haciendo esto si que funciona la instalacion.
    Muy buen ejemplo, por cierto :) .
    s2.

  2. antonioserrano escribió,

    Muchas gracias por la aclaración. Se me olvido comentar que el ejemplo estaba compilado sobre la beta 2 de AIR.

    Un saludo!

  3. jciente escribió,

    Sabes si existe la misma funcionalidad a la inversa? es decir, desde una aplicacion AIR arrastrar un objeto File o FileReference desde ella al escritorio o una carpeta del sistema y que se copie o mueva el archivo desde la aplicacion a la carpeta especificada

    gracias


Dejar un comentario