¿Quieres registrarte?

Abrir archivos desde Adobe AIR 2.0

Por: eldervaz
23 de Febrero del 2010
9133 de clabLevel
Otros artículos de eldervaz
2,650 visitas

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í

 


También te interesa


Etiquetas flex air actionscript_3

Comentarios | Enviar un comentario
Gracias por el dato Elder ;)
Por: Zguillez
Listo, arreglado el coloreado de código en el foro y tips.

Está bastante sencillo y se me hace un movimiento muy lógico. Abrir archivos con la aplicación nativa. ¿Esto funciona de alguna manera similar en el mundo móvil? ¿Esta API está soportada en 10.1 para móviles?
Por: Freddie
sólo para Desktop
Por: eldervaz
Una pregunta, ¿por que le agregas el simbolo de $ [dollar] a los nombres de las variables?

Muy buen tip. ^_^
Por: Gz.Francisco
costumbres phperas... ?
Por: Zandy
como dice Zandy, es parte de la sintaxis de PHP, así se diferencian las variables...
saludos
Por: MaoAizaga-blog
lo que necesito es abrir un fichero pasandole la direccion del mismo que estara siempre en la raiz de la aplicacion(archivo.doc). Es posible esto
Por: annieruci
Hola, he probado el ejemplo y me da este error.
Error #1069: Property openWithDefaultApplication not found on flash.filesystem.File and there is no default value.

No se si precisa una libreria especial o que, no veo ningun import en el codigo que pusiste ahi, asi que no entiendo.

Muchas gracias por el aporte.
Por: Gaston-blog
no puedo desinstalar adobe AIR,
GRACIAS
Por: nano-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.