Introdução do ActionScript 3.0

Olá galera, hoje vou começar com alguns posts de actionscript 3.0, espero que lhes sejam úteis.

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 3.0 oferece um modelo de programação robusto que parecerá familiar aos desenvolvedores com um
conhecimento básico de programação orientada a objetos. Alguns dos recursos principais do ActionScript 3.0 que
foram aprimorados em relação à versão anterior incluem:
• Uma nova ActionScript Virtual Machine, chamada AVM2, que usa um novo conjunto de instruções de código de
bytes e fornece aprimoramentos de desempenho significativos
• Uma base de código de compilador moderna que executa otimizações mais avançadas do que as versões anteriores
do compilador
• Uma API (Interface de programação de aplicativo) expandida e aprimorada, com controle de baixo nível de objetos
e um autêntico modelo orientado a objetos
• Uma API XML baseada na especificação de linguagem ECMAScript para XML (E4X) (ECMA-357 edição 2) E4X é
a extensão de linguagem para ECMAScript que adiciona XML como um tipo de dados nativo da linguagem.
• Um modelo de evento baseado na Especificação de eventos DOM (Document Object Model) nível 3

Vantagens do ActionScript 3.0

O ActionScript 3.0 vai além dos recursos de script de suas versões anteriores. Ele foi criado para facilitar a criação de
aplicativos altamente complexos com grandes conjuntos de dados e bases de código reutilizáveis orientadas a objetos.
Embora o ActionScript 3.0 não seja necessário para o conteúdo executado no Adobe Flash Player, ele permite
melhorias de desempenho que só estão disponíveis com a AVM2, a nova máquina virtual. O código do ActionScript
3.0 pode ser executado até 10 vezes mais rápido do que o código do ActionScript existente.
A versão antiga da AVM1 (ActionScript Virtual Machine) executa os códigos ActionScript 1.0 e ActionScript 2.0. As
versões 9 e 10 do Flash Player oferecem suporte a AVM1 para compatibilidade com conteúdo existente e herdado de
versões anteriores. Mais informações serão apresentadas mais adiante.

Novidades do ActionScript 3.0

Embora contenha muitas classes e recursos que parecerão familiares aos programadores do ActionScript, em termos
de arquitetura e conceito, o ActionScript 3.0 é diferente de suas versões anteriores. Os aprimoramentos do
ActionScript 3.0 incluem novos recursos da linguagem central e uma API do Flash Player melhorada que fornece mais
controle sobre objetos de baixo nível.
Nota: Os aplicativos do Adobe® AIR™ também podem usar as APIs do Flash Player.

Recursos da linguagem central

A linguagem central define os blocos de construção básicos da linguagem de programação, como instruções,
expressões, condições, loops e tipos. O ActionScript 3.0 contém vários recursos novos que aceleram o processo de
desenvolvimento.

Exceções de tempo de execução

O ActionScript 3.0 relata mais condições de erros que suas versões anteriores. As exceções de tempo de execução são
usadas para condições de erro comuns, melhorar a experiência de depuração e permitir o desenvolvimento de
aplicativos que manipulam erros de forma robusta. Os erros de tempo de execução fornecem rastreamentos de pilha
anotados com informações sobre o arquivo de origem e o número de linha, ajudando a detectar os erros rapidamente.

Tipos de tempo de execução

No ActionScript 2.0, as anotações de tipo eram basicamente um recurso de desenvolvedor; em tempo de execução,
todos os valores são tipificados dinamicamente. No ActionScript 3.0, as informações de tipo são preservadas em tempo
de execução e usadas para diversos fins. O Flash Player e o Adobe AIR fazem a verificação de tipos em tempo de
execução, melhorando a segurança de tipos do sistema. As informações sobre tipo também são usadas para retratar
variáveis em representações, melhorando o desempenho e reduzindo o uso de memória.

Classes seladas

O ActionScript 3.0 apresenta o conceito de classes seladas. Uma classe selada possui apenas o conjunto fixo de
propriedades e métodos que foram definidos em tempo de compilação e não é possível adicionar outros. Ela permite
uma verificação em tempo de compilação mais rígida, resultando em programas mais robustos. Ela também melhora
o uso de memória por não exigir uma tabela de hash interna para cada ocorrência de objeto. As classes dinâmicas
também são possíveis usando a palavra-chave dynamic. Todas as classes no ActionScript 3.0 são seladas por padrão,
mas podem ser declaradas para se tornar dinâmicas com a palavra-chave dynamic.

Fechamentos de método

O ActionScript 3.0 permite um fechamento de método que lembra automaticamente de sua ocorrência de objeto
original. Esse recurso é útil para a manipulação de eventos. No ActionScript 2.0, os fechamentos de método não
lembravam de qual ocorrência de objeto tinham sido extraídos, gerando um comportamento inesperado quando o
fechamento de método era invocado. A classe mx.utils.Delegate era uma solução conhecida, mas não é mais necessária.

ECMAScript para XML (E4X)

O ActionScript 3.0 implementa o ECMAScript para XML (E4X), recentemente padronizado como ECMA-357. O E4X
oferece um conjunto fluente de construções de linguagem para manipular XML. Diferentemente das APIs tradicionais
de análise de XML, o XML com E4X funciona como um tipo de dados nativo da linguagem. O E4X simplifica o
desenvolvimento de aplicativos que manipulam XML, reduzindo drasticamente a quantidade de código necessária.
Mais informações sobre a implementação do E4X do ActionScript 3.0 será em um outro post.
Para exibir a especificação E4X do ECMA, vá para http://www.ecma-international.org.

Expressões regulares

O ActionScript 3.0 inclui suporte nativo para expressões regulares, o que permite pesquisar e manipular seqüências de
caracteres rapidamente. Ele implementa o suporte a expressões regulares conforme definidas na especificação de
linguagem ECMAScript (ECMA-262) edição 3.

Espaços para nomes

Os espaços para nomes são semelhantes aos especificadores de acesso tradicionais usados para controlar a visibilidade
de declarações (public, private, protected). Eles funcionam como especificadores de acesso personalizados, que
podem ter os nomes que você escolher. Os espaços para nomes são equipados com um URI (Identificador Universal de
Recursos) para evitar colisões e também são usados para representar nomes para espaços XML no trabalho com E4X.

Novos tipos primitivos

O ActionScript 2.0 tem um único tipo numérico, Number, um número de ponto flutuante de precisão dupla. O
ActionScript 3.0 contém os tipos int e uint. O tipo int é um inteiro assinado de 32 bits que permite ao código
ActionScript aproveitar os rápidos recursos matemáticos de inteiros da CPU. O tipo int é útil para contadores de loop
e variáveis em que os inteiros são usados. O tipo uint é um tipo inteiro de 32 bits não assinado, útil para valores de
cores RGB, contagens de bytes etc.

Recursos da API do Flash Player

As APIs do Flash Player no ActionScript 3.0 contêm várias classes que permitem controlar objetos em um nível baixo.
A arquitetura da linguagem foi projetada para ser mais intuitiva do que a das outras versões. As novas classes são tantas
que não cabe tratar em detalhes aqui, mas as seções a seguir destacam algumas alterações significativas.
Nota: Os aplicativos do Adobe® AIR™ também podem usar as APIs do Flash Player.

Modelo de eventos DOM3

O modelo de eventos DOM (Document Object Model) nível 3 fornece um meio padrão de gerar e manipular
mensagens de eventos para que os objetos nos aplicativos possam interagir e se comunicar, mantendo seu estado e
respondendo a alterações. Padronizado segundo as Especificações de eventos DOM nível 3 do World Wide Web
Consortium, este modelo fornece um mecanismo mais claro e eficiente do que os sistemas de eventos disponíveis nas
versões anteriores do ActionScript.
Os eventos e eventos de erros estão localizados no pacote flash.events. A estrutura dos componentes Flash usa o
mesmo modelo de eventos que a API do Flash Player, por isso o sistema de eventos é unificado na plataforma Flash.

API de lista de exibição

A API para acessar a lista de exibição do Flash Player e do Adobe AIR (a árvore que contém os elementos visuais no
aplicativo) consiste em classes para trabalhar com primitivas visuais.
A nova classe Sprite é um bloco de construção leve, semelhante à classe MovieClip, porém mais apropriada como uma
classe base para componentes da UI. A nova classe Shape representa formas de vetor brutas. Essas classes podem ser
instanciadas naturalmente com o operador new e atribuídas a um pai dinamicamente a qualquer momento.
O gerenciamento de profundidade agora é automático e incorporado ao Flash Player e ao Adobe AIR, tornando
desnecessária a atribuição de números de profundidade. Novos métodos foram fornecidos para especificar e gerenciar
a ordem z de objetos.

Manipulação de dados e conteúdo dinâmicos

O ActionScript 3.contém mecanismos para carregar e manipular ativos e dados no seu aplicativo que são intuitivos e
consistentes na API. A nova classe Loader fornece um único mecanismo para carregar arquivos SWF e ativos de
imagem e fornece uma forma de acessar informações detalhadas sobre o conteúdo carregado. A classe URLLoader
fornece um mecanismo separado para carregar texto e dados binários em aplicativos orientados a dados. A classe
Socket fornece um meio de ler e gravar dados binários nos soquetes do servidor em qualquer formato.

Acesso a dados de baixo nível

Varias APIs fornecem acesso de baixo nível a dados que nunca antes estiveram disponíveis no ActionScript. Para
dados obtidos por download, a classe URLStream, que é implementada por URLLoader, fornece acesso a dados como
dados binários brutos enquanto estão sendo baixados. A classe ByteArray permite otimizar a leitura, a gravação e o
trabalho com dados binários. A nova API Sound fornece controle detalhado de som por meio das classes
SoundChannel e SoundMixer. Novas APIs que lidam com segurança fornecem informações sobre os privilégios de
segurança de um arquivo SWF ou conteúdo carregado, permitindo manipular melhor os erros de segurança.

Trabalho com texto

O ActionScript 3.0 contém um pacote flash.text para todas as APIs relacionadas a texto. A classe TextLineMetrics
fornece uma métrica detalhada para uma linha de texto em um campo de texto; ela substitui o método
TextFormat.getTextExtent() no ActionScript 2.0. A classe TextField contém vários novos métodos de baixo nível
interessantes que podem fornecer informações específicas sobre uma linha de texto ou um único caractere em um
campo de texto. Esses métodos incluem getCharBoundaries(), que retorna um retângulo representando a caixa
delimitadora de um caractere, getCharIndexAtPoint(), que retorna o índice do caractere em um ponto especificado,
e getFirstCharInParagraph(), que retorna o índice do primeiro caractere em um parágrafo. Os métodos de nível
de linha incluem getLineLength(), que retorna o número de caracteres em uma linha de texto especificada, e
getLineText(), que retorna o texto da linha especificada. Uma nova classe Font fornece um meio de gerenciar fontes
incorporadas em arquivos SWF.

Compatibilidade com versões anteriores

Como sempre, o Flash Player fornece compatibilidade total com conteúdo publicado em versões anteriores. Qualquer
conteúdo executado em versões anteriores do Flash Player pode ser executado no Flash Player 9 e em versões
posteriores. A introdução do ActionScript 3.0 no Flash Player 9, contudo, apresenta alguns desafios de
interoperabilidade entre o conteúdo antigo e o novo executado no Flash Player 9 ou posterior. Esses problemas de
compatibilidade incluem os seguinte:
• Um único arquivo SWF não pode combinar o código do ActionScript 1.0 ou 2.0 com o código do ActionScript 3.0.
• O código do ActionScript 3.0 pode ser carregado em um arquivo SWF escrito no ActionScript 1.0 ou 2.0, mas não
pode acessar as variáveis e funções do arquivo SWF.
• Os arquivos SWF escritos no ActionScript 1.0 ou 2.0 não podem carregar arquivos SWF escritos no ActionScript
3.0. Isso significa que os arquivos SWF criados no Flash 8 ou no Flex Builder 1.5 ou versões anteriores não podem
carregar arquivos SWF do ActionScript 3.0.
A única exceção a essa regra é que um arquivo SWF do ActionScript 2.0 pode ser substituído por um arquivo SWF
do ActionScript 3.0, contanto que não tenha carregado nada antes em qualquer um de seus níveis. Um arquivo SWF
do ActionScript 2.0 pode fazer isso por meio de uma chamada a loadMovieNum(), transmitindo um valor de 0 ao
parâmetro level.

• Em geral, os arquivos SWF escritos no ActionScript 1.0 ou 2.0 devem ser migrados para trabalhar com os arquivos
SWF escritos no ActionScript 3.0. Por exemplo, digamos que você criou um player de mídia usando o ActionScript
2.0. Ele carrega vários conteúdos que também foram criados usando o ActionScript 2.0. Se você criar um novo
conteúdo no ActionScript 3.0, não poderá carregá-lo no player de mídia. Será necessário migrar o player de vídeo
para o ActionScript 3.0.
Se, no entanto, você criar um player de mídia no ActionScript 3.0, ele poderá executar carregamentos simples do
seu conteúdo do ActionScript 2.0.
As tabelas a seguir resumem as limitações das versões anteriores do Flash Player em relação ao carregamento de novo
conteúdo e execução de código, bem como as limitações de scripts entre arquivos SWF escritos em versões diferentes
do ActionScript.

Imagem

Na tabela a seguir, “Funcionalidade com suporte” refere-se ao conteúdo executado no Flash Player 9 ou posterior. O
conteúdo executado no Flash Player 8 ou anterior só pode ser carregar, exibir, executar e cruzar scripts no ActionScript
1.0 e 2.0.

Imagem

E por enquanto é isso pessoal até a próxima!

Fonte: Retirado da apostila oficial da Adobe FlashAS3

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s