advanced action script 3.0

26
ActionScript 3.0 [ Temas Avanzados ] Alberto González

Upload: alberto-gonzalez

Post on 24-May-2015

1.715 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Advanced Action Script 3.0

ActionScript 3.0[ Temas Avanzados ]

Alberto González

Page 2: Advanced Action Script 3.0

Alberto González

• CTO de Activ (AATC).• Consultor de Adobe Systems Inc. en México enfocado

en la plataforma para RIAs.• Co – manager de RIActive (AUG).• Instructor de diversas tecnologías de programación

para web.

Twitter ID >> @albertxE-mail >> [email protected] >> http://x-geom.net/blog

Page 3: Advanced Action Script 3.0

Temas a tratar

Page 4: Advanced Action Script 3.0

Bibliotecas ActionScript

Core ActionScript 3.0 (playerglobal.swc)

Flex libsflex.swc

framework.swcrpc.swc…

AIR libsairglobal.swc

airframework.swc

Page 5: Advanced Action Script 3.0

Archivos .swc

• Es un empaquetado de clases (biblioteca de clases)

• Se puede abrir con cualquier descompresor de archivos (WinZip, WinRar, 7zip, etc.)

• Contiene los sig archivos:– catalog.xml >> enlista el contenido del paquete– .swf >> es quien contiene las clases– [ assets >> archivos .png, .gif, .mp3, etc. ]

Page 6: Advanced Action Script 3.0

FLASH PLAYER

Page 7: Advanced Action Script 3.0

Arquitectura del Flash Player

Page 8: Advanced Action Script 3.0

GARBAGE COLLECTOR

Page 9: Advanced Action Script 3.0

Garbage Collector

• Es un proceso que se encarga de liberar la memoria utilizada por objetos que ya no están en uso en la aplicación.

• Un objecto puede considerarse como “que ya no está en uso” cuando no existen referencias hacia él desde otros objetos activos.

Page 10: Advanced Action Script 3.0

Garbage Collector

• Utiliza dos algoritmos para su funcionamiento.

Conteo de referencias

•Lleva un conteo de las referencias que tiene cada objeto•Cuando un objeto tiene 0 referencias hacia el entonces lo considera para eliminarlo

Barrido de objetos

•Realiza un barrido por la lista general de objetos gráficos•Cuando el/los objeto(s) no pertenecen a dicha lista y no tienen ninguna referencia hacia ellos entonces los considera para su eliminación

Page 11: Advanced Action Script 3.0

Garbage Collector (Sweep)

http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html

A eliminar

Page 12: Advanced Action Script 3.0

Garbage Collector

• No tenemos forma “ejecutarlo” cuando deseamos *

• Se ejecuta por sí solo cuando el sistema lo requiere.

• Herramientas disponibles para manipularlo:– Flex Profiling– flash.system.System• gc() // FlashPlayer >= 9.0.115 | Debugger

Page 13: Advanced Action Script 3.0

Otros métodos y propiedades de la clase << System >>

• exit()• pause()• resume()• totalMemory:uint

Page 14: Advanced Action Script 3.0

DEMO“Profiling” de aplicación desde Flex Builder

Page 15: Advanced Action Script 3.0

Loader.unloadAndStop()

Page 16: Advanced Action Script 3.0

Problemas con la carga de elementos gráficos externos (Loader)

• En ocasiones los sonidos no se detenían cuando descargábamos un video u otro swf con audio.

• El recolector de basura no podía eliminar la película cargada incluso aunque ya no la estuviéramos ocupando.

• Los video se seguían reproduciendo por “detrás” aún cuando ya no se ocupaba el clip.

Page 17: Advanced Action Script 3.0

Loader.unloadAndStop()• Disponible desde Flash Player 10• Pasa por todo el árbol de “DisplayObjects” del swf cargado realizando

lo sig:– Libera memoria de mapas de bits– Detiene la ejecución de los sonidos– Detiene la ejecución de los videos– Detiene todas las animaciones de los MovieClips– Elimina los “handlers” para los eventos enterFrame, frameConstructed,

exitFrame, activate, deactivate y eventos de stage de los elementos internos– Detiene cualquier carga de datos que se esté ejecutando desde los elementos

internos (FileReference, sockets, http, file:)– Todas las instancias de la clase << Timer >> son detenidas– Cámara y Micrófono son apagados– El DisplayObject no se puede volver a mostrar en el Flash Player.

Page 18: Advanced Action Script 3.0

PARA AMANTES DE LA LINEA DE TIEMPO…

Page 19: Advanced Action Script 3.0

Flujo de trabajo de Flash Player en un frame

[Evento] enterFrame

Constructores

[Evento] frameConstructed

Scripts del frame

[Evento] exitFrame

Rendereo del Frame

Page 20: Advanced Action Script 3.0

Y ADEMÁS…

Page 21: Advanced Action Script 3.0

Tipos de datos estrictos

• Siempre que se pueda, utilizar el tipo de dato correcto para las variables, constantes, etc. (se ejecutan mucho más rápido)

• Trata de evitar el uso del tipo de dato “ * “• Utilizar el modo de compilación “estricto”

Page 22: Advanced Action Script 3.0

Arreglos “monotipeados”

• A partir del Flash Player 10 se le incorporó la clase << Vector >> a ActionScript.

• La clase << Vector >> nos permite trabajar con arreglos especificando el tipo de dato que tendrán los elementos internos.

• La clase << Vector >> trabaja mucho más rápido que la clase << Array >>

• Contiene prácticamente los mismos métodos y propiedades que la clase << Array >> ( push, pop, join, reverse, map, …)

Page 23: Advanced Action Script 3.0

Clase << Vector >>

var v:Vector.<String> = new Vector.<String>();v.push("Adobe");v.push("Systems");v.push("Incorporated");

v.reverse();

trace(v.join(" < ")); // Incorporated < Systems < Adobe

Page 24: Advanced Action Script 3.0

Menos clases dinámicas

• << MovieClip >> es la clase dinámica más utilizada en proyectos Flash.

• Si no requerimos de la funcionalidad de línea de tiempo utilizar mejor la clase << Sprite >>

Page 25: Advanced Action Script 3.0

Usa 3D en Flash (2.5D)

• A partir de Flash Player 10• Completamente integrado al DisplayObject• La propiedad Z no ordena únicamente dibuja• Herramientas y clases para manejo de 3D

disponibles en Flash CS4– 3D Rotation Tool– Cámaras– Vanishing Points

Page 26: Advanced Action Script 3.0

GRACIAS!!!

• Alberto González información de contactoTwitter ID >> @albertxE-mail >> [email protected] >> http://x-geom.net/blog

• ¿ ANY QUESTIONS ?