2. Objetivos
Usar Flash para crear una aplicación de
plataforma cruzada (cross-plataform)
Asignar la configuración para crear una
aplicación Air
Personalizar la aplicación AIR y el
instalador
Definir los iconos de la aplicación AIR
3. Objetivos
Usar las clases AIR para interactuar con el
sistema operativo
Publicar e instalar una aplicación AIR
Usar las propiedades drag&drop del
sistema operativo con la aplicación AIR
Usar las clases File y FileStream para leer
datos desde un archivo externo
4. AIR
AIR (Adobe Integrated Runtime) es una
herramienta para crear aplicaciones de
escritorio, utilizando los conocimientos de
ActionScript
Se pueden crear aplicaciones AIR desde
Flash, Flex y Dreamweaver
Las aplicaciones AIR funcionan en
Windows, Macintosh y Linux
5. AIR
Con AIR podrá:
– Leer y escribir archivos de datos
– Copiar y pasar objetos del portapapeles del
sistema operativo
– Se tiene propiedades de navegador
– Integración con archivos PDF
– Crear base de datos locales
6. ActionScript para AIR
Existen clases especificas para AIR, que
sólo funcionan con ActionScript 3.0.
Todas las clases de Flash AS 3.0 funcionan
para AIR.
7. Archivo descriptor
Las aplicaciones AIR tienen un archivo
XML con la descripción de la misma,
incluyendo los iconos que se utilizarán
Los iconos tienen 4 tamaños
predeterminados, en formato PNG.
Las aplicaciones AIR cuentan con una
firma digital de seguridad
Dicha firma debe de ser adquirida a una
empresa que se dedica a ello
9. Archivo descriptor
Usted puede crear su propia firma digital,
pero no tiene la misma seguridad y en la
instalación se indicará que el proveedor
del software es “desconocido”
Se puede generar una firma digital tipo
1024_RSA y 2048-RSA (más segura)
Indique también los archivos que deben
ser incluidos dentro de la aplicación
10. Paquete de aplicación
Un archivo con extensión .air es creado, el
cual es el instalador (deberá tener los
privilegios en su sistema operativo para
crear el paquete).
Al ejecutar este paquete, su aplicación
deberá ser correctamente instalada en su
sistema operativo
12. Clase NativeDragEvent
La clase NativeDragEvent es utilizada
para detectar los objetos que se mueven
por medio del sistema operativo
– nativeDragStart: cuando comienza la
operación de arrastrar.
– nativeDragUpdate: mientras la operación
de arrastrar está en curso.
– nativeDragComplete: cuando el usuario
suelta el elemento arrastrado (se acepte o no
la operación de soltar).
13. Clase NativeDragEvent
Al arrastrar un objeto en el sistema
operativo, se genera un objeto
NativeDragManager
El objeto que detectará dentro de Flash a
los objetos externos, se marca con el
método NativeDragManager.doDrag()
Estos objetos pueden detectar los
siguientes eventos:
14. Clase NativeDragEvent
nativeDragEnter: cuando el objeto
arrastrardo no sale de los límites del
objeto.
nativeDragOver: mientras el gesto de
arrastrar permanece dentro de los límites
del objeto.
nativeDragExit: cuando el gesto de
arrastrar sale de los límites del objeto.
15. Clase NativeDragEvent
nativeDragDrop: cuando el usuario suelta
el elemento sobre el objeto y éste ha
aceptado previamente la operación de
soltar mediante una llamada a
NativeDragManager.acceptDragDrop().
16. Clase NativeDragEvent
En este ejemplo se utilizará:
– El evento NATIVE_DRAG_ENTER para indicar
que el objeto está sobre el objeto habilitado
en Flash
– El evento NATIVE_DRAG_DROP para indicar
que el objeto fue soltado sobre el objeto
habilitado en Flash
17. Formatos del clipboard
Al momento de ser arrastrado, AIR puede
determinar el tipo de objeto que se
arrastra (texto, bitmap, HTML, etc)
En el sistema operativo, se pueden
arrastrar más de un archivo, con lo cual se
genera un arreglo con los archivos que
han sido arrastrados por el usuario
Los archivos arrastrados pueden ser de
diferente tipo
18. Clase NativeDragEvent
Con el método .hasFormat() se puede
verificar si el portapapeles contiene
información
Este método puede tener uno de los
siguientes parámetros:
19. Clase NativeDragEvent
Formato Tipo Descripción
ClipboardFormats.TEXT_FORMAT String datos de cadena
ClipboardFormats.HTML_FORMAT String datos de cadena
HTML
ClipboardFormats.URL_FORMAT String Cadena URL (sólo
AIR)
ClipboardFormats.RICH_TEXT_FORMAT ByteArr
ay
Datos con formato
de texto
enriquecido
20. Clase NativeDragEvent
Formato Tipo Descripción
ClipboardFormats.BITMAP_FORMAT Bitmap
Data
datos de mapa de
bits (sólo AIR)
ClipboardFormats.FILE_LIST_FORMAT conjunt
o de
File
conjunto de
archivos (sólo AIR)
Nombre de formato personalizado cualqui
era
referencia a objeto
y clon serializado
22. Evento NATIVE_DRAG_DROP
El evento NATIVE_DRAG_DROP se lanza
cuando el usuario suelta los objetos
arrastrados desde el sistema operativo,
sobre el objeto habilitado en Flash
Tenemos que recuperar la información de
los objetos en un arreglo local:
var cbFiles:Array =
e.clipboard.getData(ClipboardFormats.FILE_LIST
_FORMAT,ClipboardTransferMode.CLONE_ONLY)
as Array;
23. Evento NATIVE_DRAG_DROP
El método clipboard.getdata() recupera
la información del portapapeles de los
archivos descritos en FILE_LIST_FORMAT
El segundo parámetro, CLONE_ONLY
indica que se usará una copia del archivo
y no su referencia
Después de esto crearemos dos arreglos
para validar que los archivos arrastrados
sean del formato de nuestros
componentes
25. Clases File
Objeto File que representa una ruta de archivo o
de directorio existente, o bien uno que aún no
exista.
La clase File tiene varias propiedades y métodos
para obtener información sobre el sistema de
archivos y las operaciones permitidas (por
ejemplo, copiar archivos y directorios).
Puede utilizar objetos File con la clase
FileStream para leer y escribir archivos.
26. Clases File
La clase File incluye propiedades estáticas que permiten
hacer referencia a las ubicaciones de directorio más
utilizadas:
– File.applicationStorageDirectory: un directorio de
almacenamiento exclusivo para cada aplicación de AIR instalada
– File.applicationDirectory: el directorio de sólo lectura en el
que se instala la aplicación (junto con el resto de archivos
instalados)
– File.desktopDirectory: el directorio del escritorio del usuario
– File.documentsDirectory: el directorio de documentos del
usuario
– File.userDirectory: el directorio del usuario
27. La clase FileStream
Se utiliza un objeto FileStream para leer y
escribir archivos. Los archivos se pueden abrir
de forma sincrónica llamando al método open()
o de forma asíncrona llamando al método
openAsync().
La ventaja de abrir archivos de forma asíncrona
reside en que otro código puede ejecutarse
mientras Adobe AIR lee y escribe los procesos
en segundo plano.
Cuando se abre de forma asíncrona, los eventos
progress se distribuyen como procedimiento de
las operaciones.
28. La clase FileStream
Un objeto File abierto de forma sincrónica se
comporta casi como un objeto ByteArray; un
archivo que se abre de forma asíncrona se
comporta casi como un objeto Socket o
URLStream.
Cuando se abre un objeto File de forma
sincrónica, la llamada se detiene mientras se
leen o escriben los datos solicitados en el
archivo subyacente.
Cuando se abre de forma asíncrona, todos los
datos escritos en el flujo se guardan en el búfer
inmediatamente para escribirse después en el
archivo.
29. La clase FileStream
Los datos que se pueden leer de forma
sincrónica en el momento actual se
representan mediante la propiedad
bytesAvailable.
Una aplicación que procesa entradas
asíncronas suele registrar eventos progress y
consumir los datos a medida que están
disponibles mediante llamadas a métodos de
lectura. Una aplicación también puede
esperar a que todos los datos estén
disponibles registrando el evento complete.
30. Abrir un archivo
open(file:File, fileMode:String):void
Abre el objeto FileStream de forma
sincrónica y señala al archivo especificado
por el parámetro file.
En sistemas que admitan el bloqueo de
archivos, un archivo abierto en modo de
"escritura" o de "actualización"
(FileMode.WRITE o FileMode.UPDATE) no
se puede leer hasta que se cierra.
31. FileMode
La clase FileMode define constantes de
cadena utilizadas por el parámetro
fileMode de los métodos open() y
openAsync() de la clase FileStream. El
parámetro fileMode de estos métodos
determina las funciones disponibles en el
objeto FileStream una vez abierto el
archivo.
32. FileMode
Las funciones de cada constante de la clase
FileMode :
Constante Lectura Escritura Creación Truncar Añadir
READ *
WRITE * * *
APPEND * * *
UPDATE * * *
33. Leer la información
readUTFBytes(length:uint):String
Lee una secuencia de bytes UTF-8 desde
el flujo de bytes o el conjunto de bytes y
devuelve una cadena.
34. Cerrar un archivo
close():void
No es posible escribir ni leer más datos
una vez llamado el método close(). Si el
archivo se ha abierto de forma asíncrona
(el objeto FileStream utilizado en el
método openAsync() para abrir el
archivo), al llamar al método close() el
objeto distribuye el evento close.
35. Preguntas de revisión
¿Cómo se puede convertir una aplicación
Flash en una AIR?
¿Cuál es el propósito de una firma digital?
¿Para qué se utilizan los cuatro archivos
de iconos?
¿Qué evento se dispara cuando un archivo
es arrastrado dentro de un objeto de una
aplicación AIR?
36. Preguntas de revisión
¿Cuál evento es disparado cuando el
usuario suelta el objeto sobre una
aplicación AIR?
¿Cuáles clases son utilizadas en AIR para
leer y escribir en los archivos externos a la
aplicación?