Linguagem
O ActionScript é a linguagem de programação dos ambientes de tempo de execução Adobe® Flash® Player e Adobe® AIR™. Ele permite interatividade, manipulação de dados e muito mais no conteúdo e nos aplicativos do Flash, Flex e AIR.
O ActionScript é executado com a AVM (ActionScript Virtual Machine), que faz parte do Flash Player e do AIR. O código do ActionScript em geral é compilado no formato de código de bytes (um tipo de linguagem de programação escrita e entendida por computadores) por um compilador, como o criado no Adobe® Flash® CS4 Professional ou no Adobe® Flex™ Builder™ ou como o disponível no Adobe® Flex™ SDK. O código de bytes é incorporado aos arquivos SWF, que são executados pelo Flash Player e pelo AIR.
O ActionScript é uma linguagem que evoluiu dos recursos de script do Flash Player. Embora esteja na terceira versão, existem duas versões lançadas como ActionScript (a versão 1.0 foi nomeada somente quando lançada a versão dois).
Action Script 2.0
- Tipos em tempo de compilação e dinamicamente tipados em tempo de execução.
- Orientação à objetos baseada em protótipos, novas classes criadas a partir da extensão de outras pré-existentes.
- Tipo primitivo numérico. Um apenas :Number, ponto flutuante com dupla precisão.
Action Script 3.0
Nesta versão foram introduzidos novos recursos:
- Verificação de tipos em tempo de compilação e de execução: os tipos são agora preservados em tempo de execução. O Flash Player faz verificação de tipos no momento da execução. Estas informações de tipo também são utilizadas na máquina virtual para melhorar desempenho e reduzir uso de memória.
- Exceções em tempo de execução: Erros em tempo de execução disponiblizam estado da pilha ("stack traces") com indicação de arquivo fonte e número de linhas, como em java, para rápida identificação de onde o erro foi gerado.
- Separação do sistema de herança de classes do sistema de herança de prototipação utilizado na versão anterior: Vários recursos que antes era disponibilizados por funções de biblioteca foram incluídos na linguagem.
- Classes seladas: o comportamento padrão é que as classes não podem ser estendidas em tempo de execução, melhorando a alocação de memória e mantendo a aplicação mais segura. Classes dinâmicas podem ser utilizadas se definidas com o modificador dynamic.
- Suporte a pacotes (package), como em Java, namespaces.
- Métodos com Closure: as closures nos métodos guardam o estado dos objetos da qual originaram.
- A API do flash player foi reorganizada em packages
- Sistema unificado de tratamento de eventos baseado no Document Object Model.
- Integração do ECMAScript para XML (chamada E4X). A antiga API, da versão 2.0, ainda existente.
- Acesso direto à lista de componentes do Flash em tempo de execução, permitindo controle completo em ActionScript.
- Implementação da especificação do ECMAScript (quarta edição).
- Expressões regulares: suporte nativo à expressões regulares.
- Novos tipos primitivos númericos: int (com sinal) e uint (sem sinal), ambos com 32 bits.