Abrir archivos desde Adobe AIR 2.0


Cuando Adobe decidió escuchar a los principales desarrolladores o agencias sobre que les gustaría implementar en la nueva versión de Adobe AIR, muchos de ellos querían abrir archivos externos logrando con esto un gran abanico de posibilidades. Con la nueva versión de Adobe AIR 2.0 se puede seleccionar un archivo y abrirlo con su aplicación por defecto, si este archivo no tiene asignado una aplicación con cual poder abrir, mostrará un error. Por otro lado, no puedes acceder a este archivo para manipularlo ya que te saldrá un mensaje de Seguridad (por lo menos no con File, lo veremos en otro tip).

Como ya explicamos en el tip anterior, debemos usar Flash Builder(FB) o eclipse (con el SDK de flex), sumado a esto tenemos que tener el SDK de AIR 2.0.

Vamos a crear un boton en FB para que nos dispare una función:

Código :

<s:Button id="btn" label="Open File" click="openNewFile()" />

La función nos abrirá el browser para poder seleccionar el archivo que deseamos:

Código :

private var $__file:File;
         
private function openNewFile():void{
   $__file = new File();
   $__file.addEventListener(Event.SELECT, fileSelected, false, 0, true);
   $__file.browseForOpen("Buscar archivo a abrir!!");
   //con esto también podemos poner un título a la ventana que abrirá
}

Nuestro evento Event.SELECT será ejecutado cuando ya tengamos aceptado el archivo que seleccionamos.

Código :

private function fileSelected(e:Event):void{
   try {
      //aquí la magia
      $__file.openWithDefaultApplication();
   } catch(error:Error) {
      trace("Problemas con el archivo a abrir");
   }
}

Y listo, con esto podemos probar y ver que logramos abrir un .PSD en Photoshop o un .DOC en Word, siempre y cuando estas apicaciones sean "por defecto".

Aquí el código completo

Código :

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                  xmlns:s="library://ns.adobe.com/flex/spark" 
                  xmlns:mx="library://ns.adobe.com/flex/mx" width="356" height="183">
   
   <fx:Script>
      <![CDATA[
         
         private var $__file:File;
         
         private function openNewFile():void{
            $__file = new File();
            $__file.addEventListener(Event.SELECT, fileSelected, false, 0, true);
            $__file.browseForOpen("Buscar archivo a abrir!!");
         }
         
         private function fileSelected(e:Event):void{
            try {
               $__file.openWithDefaultApplication();
            } catch(error:Error) {
               trace("Problemas con el archivo a abrir");
            }
         }
         
      ]]>
   </fx:Script>
   
   
   <s:Button id="btn" label="Open File" click="openNewFile()" horizontalCenter="0" verticalCenter="0"/>
   
   
</s:WindowedApplication>

Descarga la aplicación aquí

Enviar comentario

Deja una respuesta