SlideShare una empresa de Scribd logo
ActionScript 3.0
[ Temas Avanzados ]
Alberto González
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 >> @albertx
E-mail >> agonzalez@x-geom.net
Blog >> http://x-geom.net/blog
Temas a tratar
Bibliotecas ActionScript
Core ActionScript 3.0
(playerglobal.swc)
Flex libs
flex.swc
framework.swc
rpc.swc…
AIR libs
airglobal.swc
airframework.swc
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. ]
FLASH PLAYER
Arquitectura del Flash Player
Movie
Rendering Engine
Display List
ActionScript Virtual Machine
AVM 1 (AS1/ AS2) AVM 2 (AS3)
Events
GARBAGE COLLECTOR
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.
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
Garbage Collector (Sweep)
http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html
A eliminar
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
Otros métodos y propiedades de la
clase << System >>
• exit()
• pause()
• resume()
• totalMemory:uint
DEMO
“Profiling” de aplicación desde Flex Builder
Loader.unloadAndStop()
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.
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.
PARA AMANTES DE LA LINEA DE
TIEMPO…
Flujo de trabajo de Flash Player en un
frame
[Evento] enterFrame
Constructores
[Evento] frameConstructed
Scripts del frame
[Evento] exitFrame
Rendereo del Frame
Y ADEMÁS…
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”
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, …)
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
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 >>
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
GRACIAS!!!
• Alberto González información de contacto
Twitter ID >> @albertx
E-mail >> agonzalez@x-geom.net
Blog >> http://x-geom.net/blog
• ¿ ANY QUESTIONS ?

Más contenido relacionado

PDF
Elastix lab ece-book-esp
PDF
Instrucciones al alumno elx1 o1 elastix
ODP
Componentes Ubuntu
PDF
SISTEMAS OPERATIVOS VIRTUALIZACION
PPTX
PDF
Semana 7 Despliegue a producción
PPTX
It automation con ansible sd
ODP
instalacion Basica Moodle
Elastix lab ece-book-esp
Instrucciones al alumno elx1 o1 elastix
Componentes Ubuntu
SISTEMAS OPERATIVOS VIRTUALIZACION
Semana 7 Despliegue a producción
It automation con ansible sd
instalacion Basica Moodle

La actualidad más candente (17)

PDF
Semana 4 7 - Spring 4 y 5 Despliegue a producción
PDF
Instalacion de oracle database 10g. en ubuntu
PDF
Apuntes; Aptana Studio 3
PDF
Introducción a los servidores Linux
PDF
Semana 7 Despliegue a producción ORACLE OCI
PDF
Creación de entornos de desarrollo con Vagrant
PPTX
Gestor de archivos Ajaxplorer
PPT
PPTX
01 . play framework - instalacion
PDF
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
PDF
Manual de instalacion_my_sql_sergio
PDF
IdeaSpaceVR: como crear tu plataforma de realidad virtual
PDF
Instalación de MySQL en Linux Mint
PDF
Las claves para optimizar la seguridad de tu sitio WordPress
ODP
Gestionando tu infraestructura con Ansible
PPTX
Internet y navegador web
PDF
Mysql Administracion
Semana 4 7 - Spring 4 y 5 Despliegue a producción
Instalacion de oracle database 10g. en ubuntu
Apuntes; Aptana Studio 3
Introducción a los servidores Linux
Semana 7 Despliegue a producción ORACLE OCI
Creación de entornos de desarrollo con Vagrant
Gestor de archivos Ajaxplorer
01 . play framework - instalacion
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Manual de instalacion_my_sql_sergio
IdeaSpaceVR: como crear tu plataforma de realidad virtual
Instalación de MySQL en Linux Mint
Las claves para optimizar la seguridad de tu sitio WordPress
Gestionando tu infraestructura con Ansible
Internet y navegador web
Mysql Administracion
Publicidad

Destacado (7)

PPTX
Flash Player security
PPTX
Tendencias de seguridad en pagos por eCommerce
PPTX
Desarrollo Plataforma Flash
PPTX
Flash Player Internals
PPTX
Flash Platform
PPTX
Flash player security
PPTX
Flash player 10.1
Flash Player security
Tendencias de seguridad en pagos por eCommerce
Desarrollo Plataforma Flash
Flash Player Internals
Flash Platform
Flash player security
Flash player 10.1
Publicidad

Similar a Advanced Action Script 3.0 (20)

PDF
Dbdeployer
PPT
13 instalación y configuración o3
PDF
Framework GSM para Pruebas Automatizadas
PDF
Desarrollo de temas de apariencia para Liferay 6.1
ODP
Intro to DTrace
PDF
Información básica Java
PPT
Mootools Y Otros Frameworks JS
PDF
Curso avanzado de capacitación en DSpace
PPT
Nachos sistema operativo
PPTX
OVA DISEÑO ORACLE II Administración.pptx
PDF
6/9 Curso JEE5, Soa, Web Services, ESB y XML
PDF
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
PDF
Taller de Django betabeers
PDF
4/9 Curso JEE5, Soa, Web Services, ESB y XML
PPTX
Sistema operativo unix
PDF
Entendiendo Yii - Flisol 2016
PPTX
El Nuevo Internet Explorer 9
PDF
Notas de la version de MKVToolNix 79.0
PDF
Introducción a ndk
PPTX
Taller+Programa.pptx de la clases1234567
Dbdeployer
13 instalación y configuración o3
Framework GSM para Pruebas Automatizadas
Desarrollo de temas de apariencia para Liferay 6.1
Intro to DTrace
Información básica Java
Mootools Y Otros Frameworks JS
Curso avanzado de capacitación en DSpace
Nachos sistema operativo
OVA DISEÑO ORACLE II Administración.pptx
6/9 Curso JEE5, Soa, Web Services, ESB y XML
Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]
Taller de Django betabeers
4/9 Curso JEE5, Soa, Web Services, ESB y XML
Sistema operativo unix
Entendiendo Yii - Flisol 2016
El Nuevo Internet Explorer 9
Notas de la version de MKVToolNix 79.0
Introducción a ndk
Taller+Programa.pptx de la clases1234567

Último (20)

PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPT
Que son las redes de computadores y sus partes
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
Presentación de Redes de Datos modelo osi
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Zarate Quispe Alex aldayir aplicaciones de internet .docx
introduccion a las_web en el 2025_mejoras.ppt
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Que son las redes de computadores y sus partes
Estrategia de apoyo tecnología miguel angel solis
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Propuesta BKP servidores con Acronis1.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Presentación de Redes de Datos modelo osi
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Calidad desde el Docente y la mejora continua .pdf
Diapositiva proyecto de vida, materia catedra
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Presentación PASANTIAS AuditorioOO..pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Influencia-del-uso-de-redes-sociales.pdf

Advanced Action Script 3.0

  • 1. ActionScript 3.0 [ Temas Avanzados ] Alberto González
  • 2. 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 >> @albertx E-mail >> agonzalez@x-geom.net Blog >> http://x-geom.net/blog
  • 4. Bibliotecas ActionScript Core ActionScript 3.0 (playerglobal.swc) Flex libs flex.swc framework.swc rpc.swc… AIR libs airglobal.swc airframework.swc
  • 5. 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. ]
  • 7. Arquitectura del Flash Player Movie Rendering Engine Display List ActionScript Virtual Machine AVM 1 (AS1/ AS2) AVM 2 (AS3) Events
  • 9. 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.
  • 10. 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
  • 12. 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
  • 13. Otros métodos y propiedades de la clase << System >> • exit() • pause() • resume() • totalMemory:uint
  • 16. 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.
  • 17. 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.
  • 18. PARA AMANTES DE LA LINEA DE TIEMPO…
  • 19. Flujo de trabajo de Flash Player en un frame [Evento] enterFrame Constructores [Evento] frameConstructed Scripts del frame [Evento] exitFrame Rendereo del Frame
  • 21. 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”
  • 22. 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, …)
  • 23. 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
  • 24. 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 >>
  • 25. 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
  • 26. GRACIAS!!! • Alberto González información de contacto Twitter ID >> @albertx E-mail >> agonzalez@x-geom.net Blog >> http://x-geom.net/blog • ¿ ANY QUESTIONS ?