Você está na página 1de 58

Fernando Pinho

ActionScript 3

Objetivos
Introduo ActionScript 3

Introduo
O ActionScript a linguagem de programao dos ambientes de tempo de execuo Adobe Flash Player e Adobe AIR. Ele permite interatividade, manipulao de dados e muito mais no contedo 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.

Introduo
O ActionScript 3.0 oferece um modelo de programao robusto que parecer familiar aos desenvolvedores com um conhecimento bsico de programao orientada a objetos. Criado para facilitar a criao de aplicativos altamente complexos com grandes conjuntos de dados e bases de cdigo reutilizveis orientadas a objetos.

Introduo
Abaixo alguns dos principais recursos do ActionScript 3.0 que foram aprimorados em relao verso anterior :
Uma nova ActionScript Virtual Machine, chamada AVM2, que usa um novo conjunto de instrues de cdigo de bytes que apresenta melhoria significativa no desempenho. Uma base de cdigo de compilador moderna que executa otimizaes mais avanadas do que as verses anteriores do compilador.

MXML
O MXML uma linguagem de marcao declarativa usada para criar a interface de usurio e definir a relao entre os componentes desta interface em Flex. Baseada em XML, esta linguagem de fcil entendimento e manuseio, principalmente para quem j conhece XML e HTML.

XML NAMESPACE
Tendo sido inserido o xmlns (XML namespace) para indicar o uso de componentes de interface temos acesso a centenas de objetos para interface padro do Flex. Em um MXML so usados diversos componentes, cada um destes componentes foi criado pela Adobe usando a linguagem ActionScript e conceitos de Orientao a Objetos.

XML NAMESPACE

Introduo
Uma API (Interface de programao de aplicativo) expandida e aprimorada, com controle de baixo nvel de objetos e um autntico modelo orientado a objetos. Uma API XML baseada na especificao de linguagem ECMAScript para XML (E4X) (ECMA-357 edio 2) E4X a extenso de linguagem para ECMAScript que adiciona XML como um tipo de dados nativo da linguagem. Um modelo de evento baseado na Especificao de eventos DOM (Document Object Model) nvel 3. API do Flash Player melhorada que fornece mais controle sobre objetos de baixo nvel.

Sintaxe
Diferenciao entre maisculas e minsculas
O ActionScript 3.0 uma linguagem que diferencia maisculas e minsculas. Os identificadores que diferem somente em maisculas e minsculas so considerados identificadores diferentes. Por exemplo, o cdigo a seguir cria duas variveis diferentes:
var num1:int; var Num1:int;

Sintaxe
Ponto-e-vrgula
Voc pode usar o caractere ponto-e-vrgula (;) para encerrar uma instruo. Opcionalmente, se omitir o caractere ponto-evrgula, o compilador presumir que cada linha de cdigo representa uma nica instruo. Como muitos programadores esto acostumados a usar o ponto-e-vrgula para denotar o fim de uma instruo, seu cdigo poder ser mais fcil de ler se voc usar consistentemente ponto-evrgula para encerrar as instrues. O uso de um ponto-e-vrgula para encerrar uma instruo permite colocar mais de uma instruo em uma nica linha, mas isso pode tornar o cdigo mais difcil de ler.

Excees de tempo de execuo


O ActionScript 3.0 relata mais condies de erros que suas verses anteriores. As excees de tempo de execuo so usadas para condies de erro comuns. Melhora a experincia de depurao e permitir o desenvolvimento de aplicativos que manipulam erros de forma robusta. Os erros de tempo de execuo fornecem rastreamentos de pilha anotados com informaes sobre o arquivo de origem e o nmero de linha, ajudando a detectar os erros rapidamente.

Variveis e constantes
No ActionScript 3.0, uma varivel consiste em quatro partes diferentes:
Modificador de acesso Identificador Tipo Valor

[modificador de acesso] var <identificador>:<Tipo> [= <valor>];

Variveis e constantes
Modificador de acesso: Elemento opcional que indica o tipo de acesso que ser dado a varivel recm declarada, maiores detalhes podem ser encontrados no tpico Tipos de acesso. Se nenhum valor for colocado default ser assumido. Identificador: Define o nome da varivel/objeto, maiores detalhes sobre como definir um nome pode ser encontrado no tpico Identificadores

Variveis e constantes
Tipo: Define o tipo que ser usado para armazenar os dados, por se tratar de uma linguagem orientada a objetos o tipo pode vir a ser qualquer classe definida pela Adobe ou pelo Desenvolvedor. Valor: Representa um elemento opcional que indica como a varivel ser inicializada.

private var contador:Number = 0;

Variveis e constantes
Uma constante muito semelhante a uma varivel no sentido de que um nome que representa um valor na memria do computador, com um tipo de dados especfico. A diferena que um valor s pode ser atribudo a uma constante uma nica vez no processamento do aplicativo do ActionScript. Assim que atribudo, o valor da constante o mesmo em todo o aplicativo. A sintaxe para declarar uma constante a mesma que para declarar uma varivel, exceto que voc usa a palavra-chave const em vez da palavra-chave var:

Variveis e constantes

EXERC1

Comentrios
Os comentrios de cdigo so uma ferramenta que voc pode usar para escrever um texto que o computador deve ignorar no seu cdigo. O ActionScript inclui dois tipos de comentrios:
Comentrio de uma linha: um comentrio de uma linha criado colocando duas barras em qualquer lugar de uma linha. Tudo que vier depois das barras at o fim da linha ser ignorado pelo computador:
// This is a comment; it's ignored by the computer. var age:Number = 10; // Set the age to 10 by default.

Comentrios
Comentrio de vrias linhas: um comentrio de vrias linhas inclui um marcador de comentrio inicial (/*), o contedo do comentrio e um marcador de comentrio final (*/). Tudo entre os marcadores inicial e final ignorado pelo computador, independentemente do nmero de linhas que o comentrio contm:
/*This might be a really long description, perhaps describing what a particular function is used for or explaining a section of code. In any case, these lines are all ignored by the computer. */

Tipos de Dados
No ActionScript, h vrios tipos de dados que podemos usar. Alguns deles podem ser entendidos como "simples" ou "fundamentais:
Seqncia de caracteres: um valor textual, como um nome ou um texto. Numrico: O ActionScript 3.0 inclui trs tipos de dados especficos para dados numricos:
Nmero: qualquer valor numrico, incluindo valores com ou sem uma frao. int: um inteiro (um nmero inteiro sem uma frao). uint: um inteiro "sem sinal", que significa um nmero inteiro que no pode ser negativo.

Booleano: um valor do tipo verdadeiro ou falso, tal como se uma opo est ativa ou se dois valores so iguais

Tipos de Dados
Os tipos de dados simples representam uma nica informao: por exemplo, um nico nmero ou uma nica seqncia de texto. Entretanto, a maioria dos tipos de dados definidos no ActionScript poderia ser descrita como tipos de dados complexos, porque representam um conjunto de valores agrupados. Por exemplo, uma varivel com o tipo de dados Date representa um valor nico: um momento no tempo. No entanto, esse valor de data na verdade representado com diversos valores: dia, ms, ano, horas, minutos, segundos etc., que so todos nmeros individuais.

Tipos de Dados
Portanto, embora pensemos em uma data como um valor nico (e a tratemos dessa forma, criando uma varivel Date), internamente, o computador a entende como um grupo de diversos valores que, juntos, definem uma nica data.

Tipos de Dados
A maior parte dos tipos de dados disponibilizados pelo Flex e criados pelos programadores so complexos, pois agrupam um conjunto de dados. Faz parte deste conjunto, por exemplo:
TextField: um campo dinmico para entrada de dados . Date: informao sobre um momento no tempo (uma data e hora).

Note que qualquer classe criada pelo programador torna-se um tipo de dado que pode ser usado no momento de criar uma nova varivel.

Operadores
Os operadores so funes especiais que usam um ou mais operandos e retornam um valor.
var sumNumber:uint = 2 + 3 * 4; // uint = 14

Operadores unrios usam um operando.


var xNum:Number = 0; ++xNum); // 1

Operadores unrios

Operadores multiplicativos

Operadores aditivos

Operadores relacionais

Operadores de igualdade

Operadores lgicos

Condicionais
O ActionScript 3.0 fornece trs instrues condicionais bsicas que voc pode usar para controlar o fluxo de programa.

Condicionais
if..else

Se no quiser executar um bloco de cdigo alternativo, voc poder usar a instruo if sem a instruo else.

Condicionais
if..else if

Se no quiser executar um bloco de cdigo alternativo, voc poder usar a instruo if sem a instruo else.

Condicionais
Se uma instruo if ou else for seguida de apenas uma instruo, a instruo no precisa ficar entre chaves. Por exemplo, o cdigo a seguir no usa chaves: Entretanto, a Adobe recomenda que voc sempre use chaves, porque poder ocorrer um comportamento inesperado se instrues forem adicionadas posteriormente a uma instruo condicional sem chaves. Por exemplo, no cdigo a seguir, o valor positiveNums aumentado em 1 quer a condio seja ou no avaliada como true:

Condicionais

Condicionais
Switch: A instruo switch ser til se voc tiver vrios caminhos de execuo que dependam da mesma expresso de condio. Ela fornece uma funcionalidade semelhante a uma longa srie de instrues if..else if, mas mais fcil de ler. Em vez de testar uma condio quanto a um valor booleano, a instruo switch avalia uma expresso e usa o resultado para determinar qual bloco de cdigo ser executado. Os blocos de cdigo comeam com uma instruo case e terminam com uma instruo break. Por exemplo, a seguinte instruo switch imprime o dia da semana, com base no nmero de dias retornado pelo mtodo Date.getDay():

Condicionais

Repetio
As instrues de repetio permitem executar um bloco especfico de cdigo repetidamente usando uma srie de valores ou variveis. A Adobe recomenda que o bloco de cdigo seja sempre colocado entre chaves ({}). Embora seja possvel omitir as chaves caso o bloco de cdigo contenha apenas uma instruo, essa prtica no recomendada pelo mesmo motivo que para as condicionais.

Repetio
for: Voc deve fornecer trs expresses em uma instruo for:
uma varivel que definida com um valor inicial uma instruo condicional que determina quando a repetio termina uma expresso que altera o valor da varivel a cada repetio.

Repetio
for..in: A repetio for..in itera por meio das propriedades de um objeto ou dos elementos de uma matriz. Os objetos no so mantidos em uma ordem especfica, por isso elas podem aparecer em uma ordem aparentemente aleatria.

Repetio
for each..in: Atua sobre os itens de um conjunto, que podem ser tags em um objeto XML ou XMLList, os valores mantidos pelas propriedades do objeto ou os elementos de uma matriz.

Repetio
while: como uma instruo if que repetida desde que a condio seja true.

Uma desvantagem do uso de uma repetio while em vez de for que repeties infinitas so mais fceis de escrever com repeties while.

Repetio
do..while: uma repetio while que garante que o bloco de cdigo seja executado pelo menos uma vez, porque a condio verificada depois que o bloco executado.

Funes
As funes so blocos de cdigo que executam tarefas especficas e podem ser reutilizados no seu programa. Uma funo chamada usando seu identificador seguido de um operador parnteses (()). trace("Use trace to help debug your script");

Por exemplo, voc pode usar o mtodo Math.random(), que no usa nenhum parmetro, para gerar um nmero aleatrio: var randomNum:Number = Math.random();

Funes
Instrues de funo: A instruo de funo a tcnica preferida para definir funes. Uma instruo de funo comea com a palavra-chave function e, em seguida, vem:
O nome da funo Os parmetros, em uma lista delimitada por vrgula e entre parnteses O corpo da funo, ou seja, o cdigo do ActionScript a ser executado quando a funo chamada, delimitado por chaves Tipo de dados retornado

Funes

Funes
Funes aninhadas: possvel aninhar funes, o que significa que as funes podem ser declaradas dentro de outras. Uma funo aninhada est disponvel apenas dentro da funo pai. Por exemplo, o seguinte cdigo declara duas funes aninhadas dentro da funo getNameAndVersion():

Funes

Funes
Parmetros de funo: O ActionScript 3.0 fornece algumas funcionalidades para parmetros de funo que podem parecer novas aos programadores que no conhecem a linguagem.

Funes

Funes
O parmetro objParam referencia o mesmo objeto que a varivel global objVar. Como voc pode ver nas instrues trace do exemplo, as alteraes nas propriedades x e y do objeto objParam so refletidas no objeto objVar.

Funes
Valores de parmetro padro: Nova no ActionScript 3.0 a capacidade de declarar valores de parmetro padro para uma funo.

Funes
Retorno de valores de funes: Para retornar um valor de sua funo, use a instruo return seguida pela expresso ou pelo valor literal que deseja retornar. Por exemplo, o seguinte cdigo retorna uma expresso representando o parmetro:

Exerccios
Tabuada

Crie um programa em Flex com o LayOut sugerido no prximo slide. Crie trs funes distintas capazes de gerar a tabuada de um determinado nmero informado pelo usurio. As funes devem utilizar os trs mtodos de repetio apresentados neste curso. Altere o programa cria.do para utilizar funes aninhadas

Funes

EXERC2

Exercicios
Construa um programa utilizando funes que execute as operaes abaixo:
Ler(x) Ler(y) xx1 yy1 xx+y y (2 * x) + y Escrever(x) Escrever(y) Escrever(x + y)

Exercicios

Exercicios
Crie um programa que faa a leitura de um caractere alfanumrico, e exiba as mensagens abaixo:
(A) Voc digitou a letra A (B) Voc digitou a letra B ..... (H) Voc digitou a letra H Para os demais caractere deve ser mostrada a mensagem padro: Este caractere no vlido!