SlideShare a Scribd company logo
1 of 36
Crear una aplicación AIR
con Flash y ActionScript
Unidad 14
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
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
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
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
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.
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
Configuración de una
aplicación AIR
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
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
Manejo del portapapeles
(clipboard) del sistema
operativo
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).
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:
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.
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().
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
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
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:
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
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
Clase NativeDragEvent
workArea_mc.addEventListener(NativeDragEvent.NATIVE_
DRAG_ENTER
,onDragEnter);
function onDragEnter(e:NativeDragEvent):void {
if(e.clipboard.hasFormat(ClipboardFormats.FILE_LIST_F
ORMAT)) {
NativeDragManager.acceptDragDrop(workArea_mc);
}
}
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;
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
Manejo de archivos con
AIR
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.
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
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.
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.
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.
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.
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.
FileMode
 Las funciones de cada constante de la clase
FileMode :
Constante Lectura Escritura Creación Truncar Añadir
READ *
WRITE * * *
APPEND * * *
UPDATE * * *
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.
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.
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?
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?

More Related Content

Similar to As3 unidad 14 crear una aplicación air con flash y action script

Similar to As3 unidad 14 crear una aplicación air con flash y action script (20)

Data storage
Data storageData storage
Data storage
 
Creación de extensiones nativas
Creación de extensiones nativasCreación de extensiones nativas
Creación de extensiones nativas
 
Grupo nro4ficheros
Grupo nro4ficherosGrupo nro4ficheros
Grupo nro4ficheros
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Partesdeeclipse
PartesdeeclipsePartesdeeclipse
Partesdeeclipse
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3
 
nn
nnnn
nn
 
Spring OSGI , dm server - Leonardo Torres Altez
Spring OSGI , dm server - Leonardo Torres AltezSpring OSGI , dm server - Leonardo Torres Altez
Spring OSGI , dm server - Leonardo Torres Altez
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
Flujos y archivos
Flujos y archivosFlujos y archivos
Flujos y archivos
 
Archivos
ArchivosArchivos
Archivos
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-php
 
Working with Files, Streams, and Serialization.pdf
Working with Files, Streams, and Serialization.pdfWorking with Files, Streams, and Serialization.pdf
Working with Files, Streams, and Serialization.pdf
 
No numerica ii
No numerica iiNo numerica ii
No numerica ii
 
crear_portable.pdf
crear_portable.pdfcrear_portable.pdf
crear_portable.pdf
 
TUTORIAL
TUTORIALTUTORIAL
TUTORIAL
 
Ap01 java
Ap01 javaAp01 java
Ap01 java
 
Conceptos estructuras de datos
Conceptos estructuras de datosConceptos estructuras de datos
Conceptos estructuras de datos
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
 
Lab archivos
Lab archivosLab archivos
Lab archivos
 

More from Francisco Javier Arce Anguiano

El nuevo objeto para internacionalización y localización Intl
El nuevo objeto para internacionalización y localización IntlEl nuevo objeto para internacionalización y localización Intl
El nuevo objeto para internacionalización y localización IntlFrancisco Javier Arce Anguiano
 
Nuevas características de los objetos en JavaScript ES6
Nuevas características de los objetos en JavaScript ES6Nuevas características de los objetos en JavaScript ES6
Nuevas características de los objetos en JavaScript ES6Francisco Javier Arce Anguiano
 
La programación orientada a objetos con JavaScript ES6
La programación orientada a objetos con JavaScript ES6La programación orientada a objetos con JavaScript ES6
La programación orientada a objetos con JavaScript ES6Francisco Javier Arce Anguiano
 
HTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageHTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageFrancisco Javier Arce Anguiano
 
Crear el perfil provisional para desarrollar aplicaciones iOS
Crear el perfil provisional para desarrollar aplicaciones iOSCrear el perfil provisional para desarrollar aplicaciones iOS
Crear el perfil provisional para desarrollar aplicaciones iOSFrancisco Javier Arce Anguiano
 

More from Francisco Javier Arce Anguiano (20)

El nuevo objeto para internacionalización y localización Intl
El nuevo objeto para internacionalización y localización IntlEl nuevo objeto para internacionalización y localización Intl
El nuevo objeto para internacionalización y localización Intl
 
El nuevo tipo de datos "símbolo" o "symbol"
El nuevo tipo de datos "símbolo" o "symbol"El nuevo tipo de datos "símbolo" o "symbol"
El nuevo tipo de datos "símbolo" o "symbol"
 
Nuevas características de los objetos en JavaScript ES6
Nuevas características de los objetos en JavaScript ES6Nuevas características de los objetos en JavaScript ES6
Nuevas características de los objetos en JavaScript ES6
 
Nuevos Métodos en ES6
Nuevos Métodos en ES6Nuevos Métodos en ES6
Nuevos Métodos en ES6
 
Objetos de propagación o ...spread
Objetos de propagación o ...spreadObjetos de propagación o ...spread
Objetos de propagación o ...spread
 
Mejoras en las expresiones regulares
Mejoras en las expresiones regularesMejoras en las expresiones regulares
Mejoras en las expresiones regulares
 
Valores por default en argumentos
Valores por default en argumentosValores por default en argumentos
Valores por default en argumentos
 
Literales octales y binarias:
Literales octales y binarias: Literales octales y binarias:
Literales octales y binarias:
 
La programación orientada a objetos con JavaScript ES6
La programación orientada a objetos con JavaScript ES6La programación orientada a objetos con JavaScript ES6
La programación orientada a objetos con JavaScript ES6
 
HTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageHTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation Language
 
HTML5 API WebSQL Database: Funciones de agregado
HTML5 API WebSQL Database: Funciones de agregadoHTML5 API WebSQL Database: Funciones de agregado
HTML5 API WebSQL Database: Funciones de agregado
 
WebSQl DataBase HTML5-dql - data query language
WebSQl DataBase HTML5-dql - data query languageWebSQl DataBase HTML5-dql - data query language
WebSQl DataBase HTML5-dql - data query language
 
Las etiquetas estructurales en html5
Las etiquetas estructurales en html5Las etiquetas estructurales en html5
Las etiquetas estructurales en html5
 
Los metadatos de HTML5
Los metadatos de HTML5Los metadatos de HTML5
Los metadatos de HTML5
 
El doctype de HTML5
El doctype de HTML5El doctype de HTML5
El doctype de HTML5
 
Historia de HTML5
Historia de HTML5Historia de HTML5
Historia de HTML5
 
SQLite y PHP: DQL - data query language
SQLite y PHP: DQL - data query languageSQLite y PHP: DQL - data query language
SQLite y PHP: DQL - data query language
 
Introducción a SQLite 3 y PHP
Introducción a SQLite 3 y PHPIntroducción a SQLite 3 y PHP
Introducción a SQLite 3 y PHP
 
Crear el perfil provisional para desarrollar aplicaciones iOS
Crear el perfil provisional para desarrollar aplicaciones iOSCrear el perfil provisional para desarrollar aplicaciones iOS
Crear el perfil provisional para desarrollar aplicaciones iOS
 
Identificar el dispositivo para desarrollar en iOS
Identificar el dispositivo para desarrollar en iOSIdentificar el dispositivo para desarrollar en iOS
Identificar el dispositivo para desarrollar en iOS
 

Recently uploaded

BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 

Recently uploaded (20)

BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 

As3 unidad 14 crear una aplicación air con flash y action script

  • 1. Crear una aplicación AIR con Flash y ActionScript Unidad 14
  • 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
  • 11. Manejo del portapapeles (clipboard) del 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
  • 21. Clase NativeDragEvent workArea_mc.addEventListener(NativeDragEvent.NATIVE_ DRAG_ENTER ,onDragEnter); function onDragEnter(e:NativeDragEvent):void { if(e.clipboard.hasFormat(ClipboardFormats.FILE_LIST_F ORMAT)) { NativeDragManager.acceptDragDrop(workArea_mc); } }
  • 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?