Advanced Action Script 3.0
-
Upload
alberto-gonzalez -
Category
Technology
-
view
1.705 -
download
1
Transcript of Advanced Action Script 3.0
![Page 1: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/1.jpg)
ActionScript 3.0[ Temas Avanzados ]
Alberto González
![Page 2: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/3.jpg)
Temas a tratar
![Page 4: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/6.jpg)
FLASH PLAYER
![Page 7: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/7.jpg)
Arquitectura del Flash Player
![Page 8: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/8.jpg)
GARBAGE COLLECTOR
![Page 9: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/11.jpg)
Garbage Collector (Sweep)
http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html
A eliminar
![Page 12: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/13.jpg)
Otros métodos y propiedades de la clase << System >>
• exit()• pause()• resume()• totalMemory:uint
![Page 14: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/14.jpg)
DEMO“Profiling” de aplicación desde Flex Builder
![Page 15: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/15.jpg)
Loader.unloadAndStop()
![Page 16: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/18.jpg)
PARA AMANTES DE LA LINEA DE TIEMPO…
![Page 19: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/20.jpg)
Y ADEMÁS…
![Page 21: Advanced Action Script 3.0](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/23.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062319/55616daed8b42a5f4b8b57a6/html5/thumbnails/26.jpg)
GRACIAS!!!
• Alberto González información de contactoTwitter ID >> @albertxE-mail >> [email protected] >> http://x-geom.net/blog
• ¿ ANY QUESTIONS ?