Programación conADOBE ACTIONSCRIPT 3.0     ®            ®
© 2008 Adobe Systems Incorporated. All rights reserved.CopyrightProgramación con Adobe® ActionScript® 3.0 para Adobe® Flas...
iiiContenidoCapítulo 1: Información sobre este manualUtilización de este manual . . . . . . . . . . . . . . . . . . . . . ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH iv                                                                           ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH v                                                                            ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH vi                                                                           ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH vii                                                                          ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH viii                                                                         ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH ix                                                                           ...
1Capítulo 1: Información sobre este manualEn este manual se ofrecen unas bases para el desarrollo de aplicaciones en Adobe...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 2                                                                            ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 3                                                                            ...
4Capítulo 2: Introducción a ActionScript3.0En este capítulo se ofrece información general sobre Adobe® ActionScript® 3.0, ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 5                                                                            ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 6                                                                            ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 7                                                                            ...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 8                                                                            ...
9Capítulo 3: Introducción a ActionScriptEste capítulo se ha diseñado como punto de partida para empezar a programar en Act...
PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 10                                                                           ...
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Programacion.con.adobe.action.script.3.0
Upcoming SlideShare
Loading in …5
×

Programacion.con.adobe.action.script.3.0

3,457 views

Published on

Programación con Adobe Action Script 3.0

Published in: Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,457
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
51
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programacion.con.adobe.action.script.3.0

  1. 1. Programación conADOBE ACTIONSCRIPT 3.0 ® ®
  2. 2. © 2008 Adobe Systems Incorporated. All rights reserved.CopyrightProgramación con Adobe® ActionScript® 3.0 para Adobe® Flash®Si esta guía se distribuye con software que incluye un contrato de usuario final, la guía, así como el software descrito en ella, se proporciona con una licencia ysólo puede usarse o copiarse en conformidad con los términos de dicha licencia. Con la excepción de lo permitido por la licencia, ninguna parte de esta guíapuede ser reproducida, almacenada en un sistema de recuperación de datos ni transmitida de ninguna forma ni por ningún medio, ya sea electrónico, mecánico,de grabación o de otro tipo, sin el consentimiento previo por escrito de Adobe Systems Incorporated. Tenga en cuenta que el contenido de esta guía estáprotegido por las leyes de derechos de autor aunque no se distribuya con software que incluya un contrato de licencia de usuario final.El contenido de esta guía se proporciona exclusivamente con fines informativos, está sujeto a cambios sin previo aviso y no debe interpretarse como uncompromiso de Adobe Systems Incorporated. Adobe Systems Incorporated no asume ninguna responsabilidad por los errores o imprecisiones que puedanexistir en el contenido informativo de esta guía.Recuerde que las ilustraciones o imágenes existentes que desee incluir en su proyecto pueden estar protegidas por las leyes de derechos de autor. La incorporaciónno autorizada de este material en sus trabajos puede infringir los derechos del propietario de los derechos de autor. Asegúrese de obtener los permisos necesariosdel propietario de los derechos de autor.Cualquier referencia a nombres de compañías en plantillas de ejemplo sólo se hace con propósitos de demostración y no está relacionada con ningunaorganización real.Adobe, the Adobe logo, Adobe AIR, ActionScript, Flash, Flash Lite, Flex, Flex Builder, MXML, and Pixel Bender are either registered trademarks or trademarksof Adobe Systems Incorporated in the United States and/or other countries.ActiveX and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and other countries. Macintosh is atrademark of Apple Inc., registered in the United States and other countries. Java is a trademark or registered trademark of Sun Microsystems, Inc. in the UnitedStates and other countries. All other trademarks are the property of their respective owners.This product includes software developed by the Apache Software Foundation (http://www.apache.org/).MPEG Layer-3 audio compression technology licensed by Fraunhofer IIS and Thomson Multimedia (http://www.mp3licensing.com)Speech compression and decompression technology licensed from Nellymoser, Inc. (www.nellymoser.com).Video compression and decompression is powered by On2 TrueMotion video technology. © 1992-2005 On2 Technologies, Inc. All Rights Reserved.http://www.on2.com.This product includes software developed by the OpenSymphony Group (http://www.opensymphony.com/).This product contains either BSAFE and/or TIPEM software by RSA Security, Inc. Sorenson Spark™ video compression and decompression technology licensed from Sorenson Media, Inc.Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USANotice to U.S. government end users. The software and documentation are “Commercial Items,” as that term is defined at 48 C.F.R. §2.101, consisting of“Commercial Computer Software” and “Commercial Computer Software Documentation,” as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202,as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software andCommercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial items and (b) with only those rightsas are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States.Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S. Government End Users, Adobe agrees to comply with all applicableequal opportunity laws including, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans ReadjustmentAssistance Act of 1974 (38 USC 4212), and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1 through 60-60,60-250 ,and 60-741. The affirmative action clause and regulations contained in the preceding sentence shall be incorporated by reference.
  3. 3. iiiContenidoCapítulo 1: Información sobre este manualUtilización de este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Acceso a la documentación de ActionScript ............................................................................ 2Recursos de aprendizaje de ActionScript ............................................................................... 3Capítulo 2: Introducción a ActionScript 3.0ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Ventajas de ActionScript 3.0 ........................................................................................... 4Novedades de ActionScript 3.0 ........................................................................................ 5Compatibilidad con versiones anteriores ............................................................................... 7Capítulo 3: Introducción a ActionScriptFundamentos de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Trabajo con objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Elementos comunes de los programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Ejemplo: Sitio de muestras de animación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Creación de aplicaciones con ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Creación de clases personalizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Ejemplo: Creación de una aplicación básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Ejecución de ejemplos posteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Capítulo 4: El lenguaje ActionScript y su sintaxisInformación general sobre el lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Objetos y clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Paquetes y espacios de nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Reproducir indefinidamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Capítulo 5: Programación orientada a objetos con ActionScriptFundamentos de la programación orientada a objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Herencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Temas avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Ejemplo: GeometricShapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Capítulo 6: Trabajo con fechas y horasFundamentos de la utilización de fechas y horas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Administración de fechas de calendario y horas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
  4. 4. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH iv ContenidoControl de intervalos de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Ejemplo: Sencillo reloj analógico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Capítulo 7: Trabajo con cadenasFundamentos de la utilización de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Creación de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145La propiedad length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Trabajo con caracteres en cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Comparar cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Obtención de representaciones de cadena de otros objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Concatenación de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Búsqueda de subcadenas y patrones en cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149Conversión de cadenas de mayúsculas a minúsculas y viceversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Ejemplo: ASCII art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Capítulo 8: Trabajo con conjuntosFundamentos de la utilización de conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Conjuntos indexados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161Conjuntos asociativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Conjuntos multidimensionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Clonación de conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Temas avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Ejemplo: PlayList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Capítulo 9: Gestión de erroresFundamentos de la gestión de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Tipos de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Gestión de errores en ActionScript 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Trabajo con las versiones de depuración de Flash Player y AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Gestión de errores sincrónicos en una aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Creación de clases de error personalizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Respuesta al estado y a los eventos de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198Comparación de las clases Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Ejemplo: Aplicación CustomErrors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Capítulo 10: Utilización de expresiones regularesFundamentos de la utilización de expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Sintaxis de las expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Métodos para utilizar expresiones regulares con cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226Ejemplo: Analizador Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227Capítulo 11: Trabajo con XMLFundamentos de la utilización de XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232El enfoque E4X del procesamiento de XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235Objetos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Objetos XMLList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Inicialización de variables XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240Construcción y transformación de objetos XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
  5. 5. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH v ContenidoNavegación de estructuras XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243Utilización de espacios de nombres XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247Conversión de tipo XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248Lectura de documentos XML externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Ejemplo: Carga de datos de RSS desde Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Capítulo 12: Gestión de eventosFundamentos de la gestión de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254Diferencias entre la gestión de eventos en ActionScript 3.0 y en las versiones anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257El flujo del evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Objetos de evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260Detectores de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264Ejemplo: Reloj con alarma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Capítulo 13: Programación de la visualizaciónFundamentos de la programación de la visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278Clases principales de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282Ventajas de la utilización de la lista de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283Trabajo con objetos de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286Manipulación de objetos de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300Animación de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318Carga dinámica de contenido de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320Ejemplo: SpriteArranger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323Capítulo 14: Utilización de la API de dibujoFundamentos de la utilización de la API de dibujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329Aspectos básicos de la clase Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331Dibujo de líneas y curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331Dibujo de formas mediante los métodos incorporados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333Creación de líneas y rellenos degradados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334Utilización de la clase Math con los métodos de dibujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338Animación con la API de dibujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339Ejemplo: Generador visual algorítmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340Utilización avanzada de la API de dibujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342Trazados de dibujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Definición de reglas de trazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345Utilización de clases de datos gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347Utilización de drawTriangles() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350Capítulo 15: Trabajo con la geometríaFundamentos de geometría . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351Utilización de objetos Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353Utilización de objetos Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355Utilización de objetos Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358Ejemplo: Aplicación de una transformación de matriz a un objeto de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
  6. 6. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH vi ContenidoCapítulo 16: Aplicación de filtros a objetos de visualizaciónFundamentos de la aplicación de filtros a los objetos de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363Creación y aplicación de filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364Filtros de visualización disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371Ejemplo: Filter Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388Capítulo 17: Trabajo con sombreados de Pixel BenderFundamentos de los sombreados de Pixel Bender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395Carga e incorporación de un sombreado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397Acceso a los metadatos de sombreado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399Especificación de valores de entrada y parámetro de sombreado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400Utilización de un sombreado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405Capítulo 18: Trabajo con clips de películaFundamentos de la utilización de película . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417Trabajo con objetos MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419Control de la reproducción de clips de película . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419Creación de objetos MovieClip con ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422Carga de un archivo SWF externo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424Ejemplo: RuntimeAssetsExplorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426Capítulo 19: Trabajo con interpolaciones de movimientoFundamentos de interpolaciones de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430Copiar scripts de interpolación de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431Incorporación de scripts de interpolación de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432Descripción de la animación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433Añadir filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435Asociación de una interpolación de movimiento con sus objetos de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437Capítulo 20: Trabajo con cinemática inversaFundamentos de cinemática inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438Información general sobre animación de esqueletos IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439Obtener información sobre un esqueleto IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441Creación de una instancia de la clase IKMover y limitación del movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441Desplazamiento de un esqueleto IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442Utilización de eventos IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442Capítulo 21: Trabajo con textoFundamentos de la utilización de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444Utilización de la clase TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446Utilización de Flash Text Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468Capítulo 22: Trabajo con mapas de bitsFundamentos de la utilización de mapas de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495Las clases Bitmap y BitmapData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498Manipulación de píxeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499Copiar datos de mapas de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502Creación de texturas con funciones de ruido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
  7. 7. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH vii ContenidoDesplazarse por mapas de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505Aprovechamiento de la técnica de mipmapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506Ejemplo: Luna giratoria animada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506Capítulo 23: Trabajo en tres dimensiones (3D)Fundamentos del concepto 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518Aspectos básicos de las funciones 3D de Flash Player y el tiempo de ejecución de AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519Creación y movimiento de objetos 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521Proyección de objetos 3D en una vista bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523Ejemplo: Proyección en perspectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525Transformaciones 3D complejas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527Utilización de triángulos para efectos 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530Capítulo 24: Trabajo con vídeoFundamentos de la utilización de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538Aspectos básicos de los formatos de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540Aspectos básicos de la clase Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543Carga de archivos de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543Control de la reproducción de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544Reproducción de vídeo en modo de pantalla completa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546Transmisión de archivos de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550Aspectos básicos de los puntos de referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550Escritura de métodos callback para metadatos y puntos de referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551Utilización de puntos de referencia y metadatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556Captura de entradas de cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565Envío de vídeo a un servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571Temas avanzados para archivos FLV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572Ejemplo: Gramola de vídeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573Capítulo 25: Trabajo con sonidoFundamentos de la utilización de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579Aspectos básicos de la arquitectura de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581Carga de archivos de sonido externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582Trabajo con sonidos incorporados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584Trabajo con archivos de flujo de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585Trabajo con sonido generado dinámicamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586Reproducción de sonidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588Consideraciones de seguridad al cargar y reproducir sonidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592Control de desplazamiento y volumen de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593Trabajo con metadatos de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594Acceso a datos de sonido sin formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595Captura de entradas de sonido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599Ejemplo: Podcast Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602Capítulo 26: Captura de entradas del usuarioFundamentos de la captura de entradas del usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610Captura de entradas de teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
  8. 8. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH viii ContenidoCaptura de entradas de ratón . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613Ejemplo: WordSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617Capítulo 27: Redes y comunicaciónFundamentos de redes y comunicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621Trabajo con datos externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624Conexión con otras instancias de Flash Player y AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629Conexiones de socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634Almacenamiento de datos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638Trabajo con archivos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640Ejemplo: Generación de un cliente Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654Ejemplo: Carga y descarga de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657Capítulo 28: Entorno del sistema del clienteFundamentos del entorno del sistema del cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663Utilización de la clase System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665Utilización de la clase Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666Utilización de la clase ApplicationDomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667Utilización de la clase IME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669Ejemplo: Detección de las características del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674Capítulo 29: Copiar y pegarConceptos básicos de copiar y pegar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678Lectura y escritura en el portapapeles del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678Formatos de datos del portapapeles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679Capítulo 30: ImpresiónFundamentos de impresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684Impresión de una página . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685Interfaz de impresión del sistema y tareas de Flash Player y AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686Configuración del tamaño, la escala y la orientación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689Ejemplo: Impresión de varias páginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690Ejemplo: Ajuste de escala, recorte y respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692Capítulo 31: Utilización de la API externaFundamentos de la utilización de la API externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695Requisitos y ventajas de la API externa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697Utilización de la clase ExternalInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698Ejemplo: Utilización de la API externa con una página Web contenedora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702Ejemplo: Utilización de la API externa con un contenedor ActiveX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708Capítulo 32: Seguridad de Flash PlayerInformación general sobre la seguridad de Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714Entornos limitados de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716Controles de permiso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718Restricción de las API de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725Seguridad del modo de pantalla completa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727Carga de contenido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
  9. 9. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH ix ContenidoReutilización de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731Acceso a medios cargados como datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734Carga de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737Carga de contenido incorporado de archivos SWF importados en un dominio de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . 739Trabajo con contenido heredado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740Configuración de permisos de LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740Control del acceso URL saliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741Objetos compartidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742Acceso a la cámara, el micrófono, el portapapeles, el ratón y el teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
  10. 10. 1Capítulo 1: Información sobre este manualEn este manual se ofrecen unas bases para el desarrollo de aplicaciones en Adobe® ActionScript® 3.0. Para comprendermejor las ideas y las técnicas descritas, debe estar familiarizado con conceptos de programación generales como, porejemplo, tipos de datos, variables, bucles y funciones. También hay que conocer conceptos básicos sobre laprogramación orientada a objetos, como los conceptos de clase y herencia. Un conocimiento previo de ActionScript1.0 o ActionScript 2.0 es útil pero no necesario.Utilización de este manualLos capítulos de este manual están organizados en los siguientes grupos lógicos para ayudarle a encontrar áreasrelacionadas de la documentación de ActionScript:Capítulo DescripciónEn los capítulos 2 a 5 se ofrece información general Se abordan los conceptos básicos de ActionScript 3.0, incluida la sintaxis delsobre la programación en ActionScript. lenguaje, sentencias, operadores y programación ActionScript orientada a objetos.En los capítulos 6 a 11, se describen las clases y los tipos Se describen los tipos de datos de nivel superior de ActionScript 3.0.de datos básicos de ActionScript 3.0.En los capítulos 12 a 32, se describen las API de Flash Se describen funciones importantes implementadas en paquetes y clasesPlayer y de Adobe AIR. específicos de Adobe Flash Player y Adobe AIR, como el control de eventos, los objetos y la lista de visualización, las conexiones de red y las comunicaciones, la entrada y salida de archivos, la interfaz externa, el modelo de seguridad de aplicaciones, etc.Este manual también contiene numerosos archivos de ejemplo que ilustran conceptos de programación deaplicaciones para clases importantes o utilizadas frecuentemente. Los archivos de ejemplo se empaquetan de formaque resulten fáciles de cargar y utilizar con Adobe® Flash® CS4 Professional y pueden incluir archivos envolventes. Sinembargo, el núcleo del código de ejemplo es puro código ActionScript 3.0 que se puede utilizar en el entorno dedesarrollo que se prefiera.Se puede escribir y compilar código ActionScript 3.0 de varias maneras:• Mediante el entorno de desarrollo Adobe Flex Builder 3.• Utilizando cualquier editor de texto y un compilador de línea de comandos, como el proporcionado con Flex Builder 3.• Usando la herramienta de edición Adobe ® Flash® CS4 Professional.Para obtener más información sobre los entornos de desarrollo de ActionScript, consulte “Introducción a ActionScript3.0” en la página 4Para comprender los ejemplos de código de este manual no es necesario tener experiencia previa en el uso de entornosde desarrollo integrados para ActionScript, como Flex Builder o la herramienta de edición de Flash. No obstante, esconveniente consultar la documentación de estas herramientas para aprender a utilizarlas y a escribir y compilarcódigo ActionScript 3.0. Para obtener más información, consulte “Acceso a la documentación de ActionScript” en lapágina 2.
  11. 11. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 2 Información sobre este manualAcceso a la documentación de ActionScriptEste manual se centra en describir ActionScript 3.0, un completo y eficaz lenguaje de programación orientado aobjetos. No incluye una descripción detallada del proceso de desarrollo de aplicaciones ni del flujo de trabajo en unaherramienta o arquitectura de servidor específica. Por ello, además de leer Programación con ActionScript 3.0, esrecomendable consultar otras fuentes de documentación al diseñar, desarrollar, probar e implementar aplicaciones deActionScript 3.0.Documentación de ActionScript 3.0En este manual se explican los conceptos relacionados con la programación en ActionScript 3.0, se muestran losdetalles de implementación y se proporcionan ejemplos que ilustran las características importantes del lenguaje. Noobstante, este manual no es una referencia del lenguaje exhaustiva. Para una referencia completa, consulte laReferencia del lenguaje y componentes ActionScript 3.0, en la que se describen todas las clases, métodos, propiedadesy eventos del lenguaje. La Referencia del lenguaje y componentes ActionScript 3.0 proporciona información dereferencia detallada sobre el núcleo del lenguaje, los componentes de la herramienta de edición de Flash (paquetes fl)y las API de Flash Player y de Adobe AIR (paquetes flash).Documentación de FlashSi utiliza la herramienta de edición de Flash, es posible que desee consultar estos manuales:Manual DescripciónUtilización de Flash Describe la manera de desarrollar aplicaciones Web dinámicas en la herramienta de edición de Flash.Programación con ActionScript 3.0 Describe el uso específico del lenguaje ActionScript 3.0 y la API principal de Flash Player y de Adobe AIRReferencia del lenguaje y componentes ActionScript 3.0 Proporciona información sobre la sintaxis y el uso, así como ejemplos de código, para los componentes de la herramienta de edición de Flash y la API de ActionScript 3.0.Utilización de componentes ActionScript 3.0 Explica los detalles del uso de componentes para desarrollar aplicaciones creadas por Flash.Desarrollo de aplicaciones de Adobe AIR con Flash CS4 Describe cómo desarrollar e implementar aplicaciones de Adobe AIR utilizandoProfessional ActionScript 3.0 y la API de Adobe AIR en FlashAprendizaje de ActionScript 2.0 en Adobe Flash Proporciona información general sobre la sintaxis de ActionScript 2.0 y sobre cómo utilizar ActionScript 2.0 al trabajar con distintos tipos de objetosReferencia del lenguaje ActionScript 2.0 Proporciona información sobre la sintaxis y el uso, así como ejemplos de código, para los componentes de la herramienta de edición de Flash y la API de ActionScript 2.0.Utilización de componentes ActionScript 2.0 Explica de forma detallada cómo utilizar componentes de ActionScript 2.0 para desarrollar aplicaciones creadas por Flash.Referencia del lenguaje de componentes ActionScript 2.0 Describe cada componente disponible en la versión 2 de la arquitectura de componentes de Adobe, junto con su APIAmpliación de Flash Describe los objetos, métodos y propiedades disponibles en la API de JavaScriptIntroducción a Flash Lite 2.x Explica cómo utilizar Adobe® Flash® Lite™ 2.x para desarrollar aplicaciones y proporciona información sobre la sintaxis y el uso, así como ejemplos de código para las funciones de ActionScript disponibles en Flash Lite 2.x
  12. 12. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 3 Información sobre este manualManual DescripciónDesarrollo de aplicaciones de Flash Lite 2.x Explica cómo desarrollar aplicaciones de Flash Lite 2.xIntroducción a ActionScript en Flash Lite 2.x Ofrece una introducción al desarrollo de aplicaciones Flash Lite 2.x y describe todas las funciones de ActionScript disponibles para los desarrolladores de Flash Lite 2.xReferencia del lenguaje ActionScript de Flash Lite 2.x Proporciona información sobre la sintaxis y el uso, así como ejemplos de código, de la API de ActionScript 2.0 disponible en Flash Lite 2.xIntroducción a Flash Lite 1.x Proporciona una introducción a Flash Lite 1.x y describe el modo de comprobar contenido con el emulador de Adobe® Device Central CS4Desarrollo de aplicaciones de Flash Lite 1.x Describe la manera de desarrollar aplicaciones para dispositivos móviles con Flash Lite 1.xAprendizaje de ActionScript en Flash Lite 1.x Explica cómo utilizar ActionScript en aplicaciones de Flash Lite 1.x y describe todas las funciones de ActionScript disponibles en Flash Lite 1.xReferencia del lenguaje ActionScript de Flash Lite 1.x Describe la sintaxis y el modo de uso de los elementos de ActionScript disponibles en Flash Lite 1.xRecursos de aprendizaje de ActionScriptAdemás del contenido de estos manuales, Adobe proporciona regularmente artículos actualizados, ideas de diseño yejemplos en el Centro de desarrollo de Adobe y el Centro de diseño de Adobe.Centro de desarrollo de AdobeEl Centro de desarrollo de Adobe contiene la información más actualizada sobre ActionScript, artículos sobre eldesarrollo de aplicaciones reales e información sobre nuevos problemas importantes. Consulte el Centro de desarrollode Adobe en http://www.adobe.com/es/devnet/.Centro de diseño de AdobePóngase al día en diseño digital y gráficos en movimiento. Examine la obra de importantes artistas, descubra las nuevastendencias de diseño y mejore sus conocimientos con tutoriales, flujos de trabajo clave y técnicas avanzadas. Consulteel centro cada quince días para ver tutoriales y artículos nuevos e inspirarse con las creaciones de las galerías. Consulteel centro de diseño en www.adobe.com/designcenter/.
  13. 13. 4Capítulo 2: Introducción a ActionScript3.0En este capítulo se ofrece información general sobre Adobe® ActionScript® 3.0, una de las versiones más recientes einnovadoras de ActionScript.ActionScriptActionScript es el lenguaje de programación para los entornos de tiempo de ejecución de Adobe® Flash® Player yAdobe® AIR™. Entre otras muchas cosas, activa la interactividad y la gestión de datos en el contenido y las aplicacionesde Flash, Flex y AIR.ActionScript se ejecuta mediante la máquina virtual ActionScript (AVM), que forma parte de Flash Player y AIR. Elcódigo de ActionScript se suele compilar en un formato de código de bytes (un tipo de lenguaje que los ordenadorespueden escribir y comprender) mediante un compilador, como el incorporado en Adobe® Flash® CS4 Professional oAdobe® Flex™ Builder™ o el que está disponible en el SDK de Adobe® Flex™. El código de bytes está incorporado en losarchivos SWF ejecutados por Flash Player y AIR.ActionScript 3.0 ofrece un modelo de programación robusto que resultará familiar a los desarrolladores conconocimientos básicos sobre programación orientada a objetos. Algunas de las principales funciones de ActionScript3.0 que mejoran las versiones anteriores son:• Una nueva máquina virtual de ActionScript, denominada AVM2, que utiliza un nuevo conjunto de instrucciones de código de bytes y proporciona importantes mejoras de rendimiento.• Una base de código de compilador más moderna que realiza mejores optimizaciones que las versiones anteriores del compilador.• Una interfaz de programación de aplicaciones (API) ampliada y mejorada, con un control de bajo nivel de los objetos y un auténtico modelo orientado a objetos.• Una API XML basada en la especificación de ECMAScript para XML (E4X) (ECMA-357 edición 2). E4X es una extensión del lenguaje ECMAScript que añade XML como un tipo de datos nativo del lenguaje.• Un modelo de eventos basado en la especificación de eventos DOM (modelo de objetos de documento) de nivel 3.Ventajas de ActionScript 3.0ActionScript 3.0 aumenta las posibilidades de creación de scripts de las versiones anteriores de ActionScript. Se hadiseñado para facilitar la creación de aplicaciones muy complejas con conjuntos de datos voluminosos y bases decódigo reutilizables y orientadas a objetos. Aunque no se requiere para el contenido que se ejecuta en Adobe FlashPlayer, ActionScript 3.0 permite introducir unas mejoras de rendimiento que sólo están disponibles con AVM2, lanueva máquina virtual. El código ActionScript 3.0 puede ejecutarse con una velocidad diez veces mayor que el códigoActionScript heredado.La versión anterior de la máquina virtual ActionScript (AVM1) ejecuta código ActionScript 1.0 y ActionScript 2.0.Flash Player 9 y 10 admiten AVM9 por compatibilidad con contenido existente y heredado de versiones anteriores.Para obtener más información, consulte “Compatibilidad con versiones anteriores” en la página 7.
  14. 14. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 5 Introducción a ActionScript 3.0Novedades de ActionScript 3.0Aunque ActionScript 3.0 contiene muchas clases y funciones que resultarán familiares a los programadores deActionScript, la arquitectura y los conceptos de ActionScript 3.0 difieren de las versiones anteriores de ActionScript.ActionScript 3.0 incluye algunas mejoras como, por ejemplo, nuevas funciones del núcleo del lenguaje y una API deFlash Player mejorada que proporciona un mayor control de objetos de bajo nivel.Nota: las aplicaciones de Adobe® AIR™ también pueden utilizar las API de Flash Player.Funciones del núcleo del lenguajeEl núcleo del lenguaje está formado por los bloques básicos del lenguaje de programación, como sentencias,expresiones, condiciones, bucles y tipos. ActionScript 3.0 contiene muchas funciones nuevas que aceleran el procesode desarrollo.Excepciones de tiempo de ejecuciónActionScript 3.0 notifica más situaciones de error que las versiones anteriores de ActionScript. Las excepciones detiempo de ejecución se utilizan en situaciones de error frecuentes y permiten mejorar la depuración y desarrollaraplicaciones para gestionar errores de forma robusta. Los errores de tiempo de ejecución pueden proporcionar trazasde pila con la información del archivo de código fuente y el número de línea. Esto permite identificar rápidamente loserrores.Tipos de tiempo de ejecuciónEn ActionScript 2.0, las anotaciones de tipos eran principalmente una ayuda para el desarrollador; en tiempo deejecución, se asignaban los tipos dinámicamente a todos los valores. En ActionScript 3.0, la información de tipos seconserva en tiempo de ejecución y se utiliza con diversos fines. Flash Player y Adobe AIR realizan una verificación detipos en tiempo de ejecución, mejorando la seguridad de los tipos del sistema. La información de tipos también seutiliza para especificar variables en representaciones nativas de la máquina, lo que mejora el rendimiento y reduce eluso de memoria.Clases cerradasActionScript 3.0 introduce el concepto de clases cerradas. Una clase cerrada posee únicamente el conjunto fijo depropiedades y métodos definidos durante la compilación; no es posible añadir propiedades y métodos adicionales.Esto permite realizar una comprobación más estricta en tiempo de compilación, lo que aporta una mayor solidez a losprogramas. También mejora el uso de memoria, pues no requiere una tabla hash interna para cada instancia de objeto.Además, es posible utilizar clases dinámicas mediante la palabra clave dynamic. Todas las clases de ActionScript 3.0están cerradas de forma predeterminada, pero pueden declararse como dinámicas con la palabra clave dynamic.Cierres de métodosActionScript 3.0 permite que un cierre de método recuerde automáticamente su instancia de objeto original. Estafunción resulta útil en la gestión de eventos. En ActionScript 2.0, los cierres de métodos no recordaban la instancia deobjeto de la que se habían extraído, lo que provocaba comportamientos inesperados cuando se llamaba al cierre demétodo. La clase mx.utils.Delegate permitía solucionar este problema, pero ya no es necesaria.
  15. 15. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 6 Introducción a ActionScript 3.0ECMAScript for XML (E4X)ActionScript 3.0 implementa ECMAScript for XML (E4X), recientemente estandarizado como ECMA-357. E4Xofrece un conjunto fluido y natural de construcciones del lenguaje para manipular XML. Al contrario que las API deanálisis de XML tradicionales, XML con E4X se comporta como un tipo de datos nativo del lenguaje. E4X optimiza eldesarrollo de aplicaciones que manipulan XML, pues reduce drásticamente la cantidad de código necesario. Paraobtener más información sobre la implementación de E4X en ActionScript 3.0, consulte “Trabajo con XML” en lapágina 232.Para ver la especificación de E4X publicada por ECMA, visite www.ecma-international.org.Expresiones regularesActionScript 3.0 ofrece compatibilidad nativa con expresiones regulares, que permiten encontrar y manipular cadenasrápidamente. ActionScript 3.0 implementa la compatibilidad con expresiones regulares tal y como se definen en laespecificación del lenguaje ECMAScript (ECMA-262) edición 3.Espacios de nombresLos espacios de nombres son similares a los especificadores de acceso tradicionales que se utilizan para controlar lavisibilidad de las declaraciones (public, private, protected). Funcionan como especificadores de accesopersonalizados, con nombres elegidos por el usuario. Los espacios de nombres incluyen un identificador de recursosuniversal (URI) para evitar colisiones y también se utilizan para representar espacios de nombres XML cuando setrabaja con E4X.Nuevos tipos simplesActionScript 2.0 tiene un solo tipo numérico, Number, un número de coma flotante con precisión doble. ActionScript3.0 contiene los tipos int y uint. El tipo int es un entero de 32 bits con signo que permite al código ActionScriptaprovechar las capacidades matemáticas de manipulación rápida de enteros de la CPU. Este tipo es útil paracontadores de bucle y variables en las que se usan enteros. El tipo uint es un tipo entero de 32 bits sin signo que resultaútil para valores de colores RGB y recuentos de bytes, entre otras cosas.Funciones de la API de Flash PlayerLas API de Flash Player en ActionScript 3.0 contienen muchas de las clases que permiten controlar objetos a bajo nivel.La arquitectura del lenguaje está diseñada para ser mucho más intuitiva que en versiones anteriores. Hay demasiadasclases nuevas para poder tratarlas con detalle, de modo que en las siguientes secciones se destacan algunos cambiosimportantes.Nota: las aplicaciones de Adobe® AIR™ también puede utilizar las API de Flash Player.Modelo de eventos DOM3El modelo de eventos del modelo de objetos de documento de nivel 3 (DOM3) ofrece un modo estándar para generary gestionar mensajes de eventos de forma que los objetos de las aplicaciones puedan interactuar y comunicarse,mantener su estado y responder a los cambios. Diseñado a partir de la especificación de eventos DOM de nivel 3 delWorld Wide Web Consortium, este modelo proporciona un mecanismo más claro y eficaz que los sistemas de eventosdisponibles en versiones anteriores de ActionScript.Los eventos y los eventos de error se encuentran en el paquete flash.events. La arquitectura de componentes de Flashutiliza el mismo modelo de eventos que la API de Flash Player, de forma que el sistema de eventos está unificado entoda la plataforma Flash.
  16. 16. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 7 Introducción a ActionScript 3.0API de la lista de visualizaciónLa API de acceso a la lista de visualización de Flash Player y Adobe AIR (el árbol que contiene todos los elementosvisuales de una aplicación Flash) se compone de clases para trabajar con elementos visuales simples.La nueva clase Sprite es un bloque básico ligero, similar a la clase MovieClip pero más apropiado como clase base delos componentes de interfaz de usuario. La nueva clase Shape representa formas vectoriales sin procesar. Es posiblecrear instancias de estas clases de forma natural con el operador new y se puede cambiar el elemento principal encualquier momento, de forma dinámica.La administración de profundidad es ahora automática y está incorporada en Flash Player y Adobe AIR, por lo que yano es necesario asignar valores de profundidad. Se proporcionan nuevos métodos para especificar y administrar elorden z de los objetos.Gestión de contenido y datos dinámicosActionScript 3.0 contiene mecanismos para cargar y gestionar elementos y datos en la aplicación, que son intuitivos ycoherentes en toda la API. La nueva clase Loader ofrece un solo mecanismo para cargar archivos SWF y elementos deimagen, y proporciona una forma de acceso a información detallada sobre el contenido cargado. La clase URLLoaderproporciona un mecanismo independiente para cargar texto y datos binarios en aplicaciones basadas en datos. La claseSocket proporciona una forma de leer y escribir datos binarios en sockets de servidor en cualquier formato.Acceso a datos de bajo nivelDiversas API proporcionan acceso de bajo nivel a los datos, lo que supone una novedad en ActionScript. La claseURLStream, implementada por URLLoader, proporciona acceso a los datos como datos binarios sin formato mientrasse descargan. La clase ByteArray permite optimizar la lectura, escritura y utilización de datos binarios. La nueva APISound proporciona control detallado del sonido a través de las clases SoundChannel y SoundMixer. Las nuevas APIrelacionadas con la seguridad proporcionan información sobre los privilegios de seguridad de un archivo SWF ocontenido cargado, lo que permite gestionar mejor los errores de seguridad.Trabajo con textoActionScript 3.0 contiene un paquete flash.text para todas las API relacionadas con texto. La clase TextLineMetricsproporciona medidas detalladas para una línea de texto en un campo de texto; sustituye al métodoTextFormat.getTextExtent() en ActionScript 2.0. La clase TextField contiene una serie de nuevos métodosinteresantes de bajo nivel que pueden ofrecer información específica sobre una línea de texto o un solo carácter en uncampo de texto. Dichos métodos son: getCharBoundaries(), que devuelve un rectángulo que representa el recuadrode delimitación de un carácter, getCharIndexAtPoint(), que devuelve el índice del carácter en un puntoespecificado, y getFirstCharInParagraph(), que devuelve el índice del primer carácter en un párrafo. Los métodosde nivel de línea son: getLineLength(), que devuelve el número de caracteres en una línea de texto especificada, ygetLineText(), que devuelve el texto de la línea especificada. Una nueva clase Font proporciona un medio paraadministrar las fuentes incorporadas en archivos SWF.Compatibilidad con versiones anterioresComo siempre, Flash Player proporciona compatibilidad completa con el contenido publicado previamente conversiones anteriores. Cualquier contenido que se ejecutara en versiones anteriores de Flash Player puede ejecutarse enFlash Player 9. Sin embargo, la introducción de ActionScript 3.0 en Flash Player 9 presenta algunos retos deinteroperabilidad entre el contenido antiguo y el contenido nuevo que se ejecuta en Flash Player 9. Algunos de losproblemas de compatibilidad que pueden surgir son:• No se puede combinar código ActionScript 1.0 ó 2.0 con código ActionScript 3.0 en un archivo SWF.
  17. 17. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 8 Introducción a ActionScript 3.0• El código ActionScript 3.0 puede cargar un archivo SWF escrito en ActionScript 1.0 ó 2.0, pero no puede acceder a las variables y funciones del archivo SWF.• Los archivos SWF escritos en ActionScript 1.0 ó 2.0 no pueden cargar archivos SWF escritos en ActionScript 3.0. Esto significa que los archivos SWF creados en Flash 8 o Flex Builder 1.5 o versiones anteriores no pueden cargar archivos SWF de ActionScript 3.0. La única excepción a esta regla es que un archivo SWF de ActionScript 2.0 puede sustituirse a sí mismo por un archivo SWF de ActionScript 3.0, siempre y cuando el archivo SWF de ActionScript 2.0 no haya cargado ningún elemento en ninguno de sus niveles. Para ello, el archivo SWF de ActionScript 2.0 debe realizar una llamada a loadMovieNum(), pasando un valor 0 al parámetro level.• En general, los archivos SWF escritos en ActionScript 1.0 ó 2.0 se deben migrar si van a funcionar de forma conjunta con los archivos SWF escritos en ActionScript 3.0. Por ejemplo, supongamos que se ha creado un reproductor de medios utilizando ActionScript 2.0. El reproductor carga distinto contenido que también se creó utilizando ActionScript 2.0. No es posible crear nuevo contenido en ActionScript 3.0 y cargarlo en el reproductor de medios. Es necesario migrar el reproductor de vídeo a ActionScript 3.0. No obstante, si se crea un reproductor de medios en ActionScript 3.0, dicho reproductor puede realizar cargas sencillas del contenido de ActionScript 2.0.En la siguiente tabla se resumen las limitaciones de las versiones anteriores de Flash Player en lo referente a la carga denuevo contenido y a la ejecución de código, así como las limitaciones relativas a la reutilización de scripts entrearchivos SWF escritos en distintas versiones de ActionScript.Funcionalidad admitida Flash Player 7 Flash Player 8 Flash Player 9 y 10Puede cargar archivos SWF publicados para 7 y versiones anteriores 8 y versiones anteriores 9 (o 10) y versiones anterioresContiene esta AVM AVM1 AVM1 AVM1 y AVM2Ejecuta archivos SWF escritos en 1.0 y 2.0 1.0 y 2.0 1.0, 2.0 y 3.0ActionScriptEn la siguiente tabla, “Funcionalidad admitida” hace referencia al contenido que se ejecuta en Flash Player 9 oposterior. El contenido ejecutado en Flash Player 8 o versiones anteriores puede cargar, mostrar, ejecutar y reutilizarscripts únicamente de ActionScript 1.0 y 2.0.Funcionalidad admitida Contenido creado en ActionScript 1.0 y 2.0 Contenido creado en ActionScript 3.0Puede cargar contenido y ejecutar código en Sólo ActionScript 1.0 y 2.0 ActionScript 1.0 y 2.0, y ActionScript 3.0contenido creado enPuede reutilizar contenido de scripts creado Sólo ActionScript 1.0 y 2.0 (ActionScript 3.0 a ActionScript 1.0 y 2.0 a través deen través de conexión local) LocalConnection. ActionScript 3.0
  18. 18. 9Capítulo 3: Introducción a ActionScriptEste capítulo se ha diseñado como punto de partida para empezar a programar en ActionScript. Aquí se proporcionanlas bases necesarias para comprender los conceptos y ejemplos descritos en el resto de páginas de este manual. Paracomenzar, se ofrece una descripción de los conceptos básicos de programación en el contexto de su aplicación enActionScript. También se tratan los aspectos fundamentales de la organización y creación de una aplicaciónActionScript.Fundamentos de programaciónDado que ActionScript es un lenguaje de programación, será de gran ayuda comprender primero algunos conceptosgenerales de programación de ordenadores.Para qué sirven los programas informáticosEn primer lugar, resulta útil entender qué es un programa informático y para qué sirve. Un programa informático secaracteriza por dos aspectos principales:• Un programa es una serie de instrucciones o pasos que debe llevar a cabo el equipo.• Cada paso implica en última instancia la manipulación de información o datos.En general, un programa informático es simplemente una lista de instrucciones paso a paso que se dan al equipo paraque las lleve a cabo una a una. Cada una de las instrucciones se denomina sentencia. Como se verá a lo largo de estemanual, en ActionScript cada sentencia finaliza con un punto y coma.Lo que realiza básicamente una instrucción dada en un programa es manipular algún bit de datos almacenado en lamemoria del equipo. En un caso sencillo, se puede indicar al equipo que sume dos números y almacene el resultado ensu memoria. En un caso más complejo, se podría tener un rectángulo dibujado en la pantalla y escribir un programapara moverlo a algún otro lugar de la pantalla. El equipo realiza un seguimiento de determinada información relativaal rectángulo: las coordenadas x e y que indican su ubicación, la anchura y altura, el color, etc. Cada uno de estos bitsde información se almacena en algún lugar de la memoria del equipo. Un programa para mover el rectángulo a otraubicación incluiría pasos como "cambiar la coordenada x a 200; cambiar la coordenada y a 150" (especificando nuevosvalores para las coordenadas x e y). Por supuesto, el equipo procesa estos datos de algún modo para convertir estosnúmeros en la imagen que aparece en la pantalla; pero para el nivel de detalle que aquí interesa, basta con saber que elproceso de "mover un rectángulo en la pantalla" sólo implica en realidad un cambio de bits de datos en la memoria delequipo.Variables y constantesDado que la programación implica principalmente cambiar datos en la memoria del equipo, tiene que haber una formade representar un solo dato en el programa. Una variable es un nombre que representa un valor en la memoria delequipo. Cuando se escriben sentencias para manipular valores, se escribe el nombre de la variable en lugar del valor;cuando el equipo ve el nombre de la variable en el programa, busca en su memoria y utiliza el valor que allí encuentra.Por ejemplo, si hay dos variables denominadas value1 y value2, cada una de las cuales contiene un número, parasumar esos dos números se podría escribir la sentencia:value1 + value2Cuando lleve a cabo los pasos indicados, el equipo buscará los valores de cada variable y los sumará.
  19. 19. PROGRAMACIÓN CON ACTIONSCRIPT 3.0 PARA FLASH 10 Introducción a ActionScriptEn ActionScript 3.0, una variable se compone realmente de tres partes distintas:• El nombre de la variable• El tipo de datos que puede almacenarse en la variable• El valor real almacenado en la memoria del equipoSe acaba de explicar cómo el equipo utiliza el nombre como marcador de posición del valor. El tipo de datos tambiénes importante. Cuando se crea una variable en ActionScript, se especifica el tipo concreto de datos que contendrá; apartir de ahí, las instrucciones del programa sólo pueden almacenar ese tipo de datos en la variable y se puedemanipular el valor con las características particulares asociadas a su tipo de datos. En ActionScript, para crear unavariable (se conoce como declarar la variable), se utiliza la sentencia var:var value1:Number;En este caso, se ha indicado al equipo que cree una variable denominada value1, que contendrá únicamente datosnuméricos ("Number" es un tipo de datos específico definido en ActionScript). También es posible almacenar un valordirectamente en la variable:var value2:Number = 17;En Adobe Flash CS4 Professional hay otra forma posible de declarar una variable. Cuando se coloca un símbolo de clipde película, un símbolo de botón o un campo de texto en el escenario, se le puede asignar un nombre de instancia enel inspector de propiedades. En segundo plano, Flash crea una variable con el mismo nombre que la instancia, que sepuede utilizar en el código ActionScript para hacer referencia a ese elemento del escenario. Así, por ejemplo, si hay unsímbolo de clip de película en el escenario y se le asigna el nombre de instanciarocketShip, siempre que se use lavariable rocketShip en el código ActionScript, se estará manipulando dicho clip de película.Una constante es muy similar a una variable en el sentido de que es un nombre que representa a un valor en la memoriadel equipo, con un tipo de datos específico. La diferencia es que a una constante sólo se le puede asignar un valor cadavez en el curso de una aplicación ActionScript. Tras asignar un valor a una constante, éste permanecerá invariable entoda la aplicación. La sintaxis para declarar constantes coincide con la de las variables, excepto por el hecho de que seusa la palabra clave const en lugar de var:const SALES_TAX_RATE:Number = 0.07;Una constante resulta útil para definir un valor que se utilizará en varios puntos de un proyecto y que no cambiará encircunstancias normales. Cuando se utiliza una constante en lugar de un valor literal el código resulta más legible. Porejemplo, es más fácil entender la finalidad de una línea de código que multiplica un precio por SALES_TAX_RATE quela de una línea de código que lo haga por 0.07. Además, si en un momento dado es preciso cambiar el valor definidopor una constante, sólo habrá que hacerlo en un punto (la declaración de la constante) cuando se utiliza una constantepara su representación en el proyecto, en lugar de tener que modificarlo varias veces como cuando se utilizan valoresliterales especificados en el código.Tipos de datosEn ActionScript, hay muchos tipos de datos que pueden utilizarse como el tipo de datos de las variables que se crean.Algunos de estos tipos de datos se pueden considerar "sencillos" o "fundamentales":• String: un valor de texto como, por ejemplo, un nombre o el texto de un capítulo de un libro• Numeric: ActionScript 3.0 incluye tres tipos de datos específicos para datos numéricos: • Number: cualquier valor numérico, incluidos los valores fraccionarios o no fraccionarios • int: un entero (un número no fraccionario) • uint: un entero sin signo, es decir, que no puede ser negativo

×