Adobe ActionScript (fecha de lanzamiento en 1997) es el lenguaje de programación de la plataformaAdobe Flash. Originalmente desarrollado como una forma para que los desarrolladores programen de forma más interactiva. La programación con ActionScript permite mucha más eficiencia en las aplicaciones de la plataforma Flash para construir animaciones de todo tipo, desde simples a complejas, ricas en datos e interfaces interactivas.
La versión más extendida actualmente es Action Script 3.0, que significó una mejora en el manejo deprogramación orientada a objetos al ajustarse mejor al estándarECMA-262 y es utilizada en las últimas versiones deAdobe Flash yFlex y en anteriores versiones deFlex. Desde la versión 2 de Flex viene incluido ActionScript 3, el cual mejora su rendimiento en comparación con sus antecesores, además de incluir nuevas características como el uso de expresiones regulares y nuevas formas de empaquetar las clases.
Flash está compuesto porobjetos, con su respectiva ruta dentro delswf. Cada uno de éstos en ActionScript pertenece a una clase (MovieClip,botones,Vectores (Arrays), etc.), que contiene Propiedades y Métodos o Funciones.
- Propiedades: Dentro del archivo raíz de la clase, están declaradas como variables (alpha, useHandCursor, length,...).
- Métodos o Funciones: Dentro del archivo raíz de la clase, están declaradas como funciones (stop(), gotoAndPlay(), getURL(),...).
Algunas clases de ActionScript son:
- Accessibility (nivel superior)
- Array (instancias)
- Boolean (instancias)
- Button (instancias)
- Capabilities (nivel superior)
- Color (instancias)
- ContextMenu (instancias)
- ContextMenuItems (instancias)
- Date (instancias)
- Error (instancias)
- Key (nivel superior)
- LoadVars (instancias)
- Math (nivel superior)
- Mouse (nivel superior)
- MovieClip (instancias)
- MovieClipLoader (instancias)
- NetConnection (instancias)
- NetStream (instancias)
- Number (nivel superior)
- Object (instancias)
- PrintJob (instancias)
- Selection (nivel superior)
- Sound (instancias)
- Stage (nivel superior)
- String (instancias)
- StyleSheet (instancias)
- System (nivel superior)
- TextField (instancias)
- TextFormat (instancias)
- XML (instancia)
- XMLSocket
ActionScript 3.0 ofrece un modelo de programación robusto que resulta familiar a los desarrolladores con conocimientos básicos sobre programación orientada a objetos. Algunas de las principales funciones de ActionScript 3.0 son:
- Una nueva máquina virtual ActionScript, denominadaAVM2, que utiliza un nuevoconjunto de instrucciones de código de bytes y proporciona importantes mejoras de rendimiento.
- Unabase de código de compilador más moderna, que se ajusta mejor alestándarECMAScript (ECMA 262) y 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 modeloorientado a objetos.
- Un núcleo del lenguaje basado en el borrador de especificación del lenguaje ECMAScript (ECMA-262) edición 4.
- Una APIXML 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.
Mejoras de la versión 3.0 respecto a sus predecesoras
[editar]ActionScript 3.0 aumenta las posibilidades de creación descripts de las versiones anteriores de ActionScript. Se ha diseñado para facilitar la creación de aplicaciones más complejas, con conjuntos de datos voluminosos y bases de código reutilizables y orientadas a objetos. Aunque no se requiere para el contenido que se ejecuta enAdobe Flash Player 9, ActionScript 3.0 permite introducir unas mejoras de rendimiento que sólo están disponibles conAVM2, la nueva máquina virtual. El código ActionScript 3.0 puede ejecutarse con una velocidad diez veces mayor que el código ActionScript heredado.
La versión anterior de la máquina virtual ActionScript (AVM1) ejecuta códigoActionScript 1.0 yActionScript 2.0. Flash Player 9 admite AVM1 por compatibilidad con contenido existente y heredado de versiones anteriores.
A continuación se citan algunas de las nuevas funcionalidades y ventajas que ofrece esta nueva versión de ActionScript en comparación con sus anteriores versiones. En verdad es más sofisticada en cuanto su estilo y adaptación para otras.
Excepciones en tiempo de ejecución
[editar]ActionScript 3.0 notifica más situaciones de error que las versiones anteriores de ActionScript. Lasexcepciones en tiempo de ejecución se utilizan en situaciones deerror frecuentes y permiten mejorar ladepuración y desarrollar aplicaciones para gestionar errores de forma robusta. Los errores en tiempo de ejecución pueden proporcionar trazas depila con la información del archivo decódigo fuente y el número de línea. Esto permite identificar rápidamente los errores.
Tipos de tiempo de ejecución
[editar]Mientras que en ActionScript 2.0, las anotaciones de tipos eran principalmente una ayuda para el desarrollador; en tiempo de ejecución, se asignaban los tipos dinámicamente a todos los valores. En ActionScript 3.0, la información de tipos se conserva en tiempo de ejecución y se utiliza con diversos fines. Flash Player 9 realiza la comprobación de tipos en tiempo de ejecución, lo que mejora la seguridad de tipos del sistema. La información de tipos también se utiliza para especificar en representaciones nativas de la máquina, lo que mejora elrendimiento y reduce el uso dememoria.
ActionScript 3.0 introduce el concepto declases cerradas. Una clase cerrada posee únicamente el conjunto fijo de propiedades y métodos definidos durante la compilación; no es posible añadir propiedades y métodos adicionales; aunque sí se puede usándolas dinámicas. Cerrarlas permite realizar una comprobación más estricta en tiempo decompilación, lo que aporta una mayor solidez a los programas. También mejora el uso de memoria, pues no requiere unatabla hash interna para cada instancia de objeto.
Además, es posible utilizarclases dinámicas mediante la palabra clave dynamic. Todas las clases de ActionScript 3.0 están cerradas de forma predeterminada, pero pueden declararse como dinámicas con la palabra clavedynamic.
ActionScript 3.0 permite que un cierre de método recuerde automáticamente su instancia de objeto original. Esta función resulta útil en la gestión de eventos. En ActionScript 2.0, los cierres de métodos no recordaban la instancia de objeto de la que se habían extraído, lo que provocaba comportamientos inesperados cuando se llamaba al cierre de método.
ECMAScript for XML (E4X)
[editar]ActionScript 3.0 implementaECMAScript for XML (E4X), recientemente estandarizado como ECMA-357. E4X ofrece un conjunto fluido y natural de construcciones del lenguaje para manipularXML. Al contrario que las API de análisis de XML tradicionales, XML con E4X se comporta como un tipo de datos nativo del lenguaje. E4X optimiza el desarrollo de aplicaciones que manipulan XML, pues reduce drásticamente la cantidad de código necesario.
ActionScript 3.0 ofrece compatibilidad nativa conexpresiones regulares, que permiten encontrar y manipular cadenas rápidamente.