actionscript 3

Upload: arimateia-bezerra

Post on 18-Jul-2015

821 views

Category:

Documents


0 download

TRANSCRIPT

ACTIONSCRIPT 3.0

A1

R

IM

A

T

E IA

SumrioFundamentos de programao ............................................................................................................ 6 O que os programas de computador fazem .................................................................................. 6 Variveis e constantes ....................................................................................................................... 7 Tipos de dados .................................................................................................................................... 8 Trabalho com o objetos ......................................................................................................................... 9 Propriedades...................................................................................................................................... 10 Mtodos .............................................................................................................................................. 11 Eventos ............................................................................................................................................... 12 Tratamento de eventos bsico ................................................................................................... 12 Processo de tratamento de eventos .......................................................................................... 13 Exemplos de tratamento de eventos ......................................................................................... 15 Elementos de programa comuns....................................................................................................... 17 Operadores......................................................................................................................................... 18 Comentrios ....................................................................................................................................... 18 Controle do fluxo .............................................................................................................................. 19 Preparao para adicionar interatividade .................................................................................... 20 Gravao do cdigo ......................................................................................................................... 21 Criao de aplicativos com o ActionScript...................................................................................... 23 Opes para organizar seu cdigo ............................................................................................... 23 Escolha da ferramenta correta ....................................................................................................... 25 Criao de suas prprias classes ..................................................................................................... 27 Escrita do cdigo para uma classe ............................................................................................... 28 Exemplo: Criao de um aplicativo bsico...................................................................................... 30 Criao do seu aplicativo do ActionScript................................................................................... 30 Criao do projeto HelloWorld e da classe Greeter ................................................................... 31 Adio de cdigo classe Greeter................................................................................................ 32 Criao de um aplicativo que usa o cdigo do ActionScript ................................................... 32 Publicao e teste do aplicativo do ActionScript ....................................................................... 34 Aprimoramento do aplicativo HelloWorld .................................................................................... 35 Linguagem e sintaxe do ActionScript............................................................................................... 39 Viso geral da linguagem ................................................................................................................... 39 Objetos e classes.................................................................................................................................. 40

A

Estratgias para criar uma classe ................................................................................................. 27

R

O processo de desenvolvimento do ActionScript ...................................................................... 27

IM

Teste do aplicativo ............................................................................................................................ 22

A2

Criao e adio de botes............................................................................................................. 20

T

Exemplo: parte de portflio de animao (Flash Professional)................................................... 20

E IA

Criar ocorrncias de objetos .......................................................................................................... 16

Pacotes e namespaces ........................................................................................................................ 41 Pacotes ............................................................................................................................................... 41 Criao de pacotes ........................................................................................................................... 42 importao de pacotes .................................................................................................................... 43 Espaos para nomes........................................................................................................................ 45 Variveis ................................................................................................................................................. 52 Noes bsicas sobre o escopo de variveis ............................................................................. 53 Valores padro .................................................................................................................................. 54 Verificao de tipos .......................................................................................................................... 56 Verificao de tipos em tempo de compilao........................................................................ 57 Verificao de tipos em tempo de execuo ........................................................................... 58 O operador is ................................................................................................................................. 59 Classes dinmicas ............................................................................................................................ 60 Descries de tipos de dados ........................................................................................................ 61 Tipo de dados Boolean ................................................................................................................ 62 Tipo de dados int........................................................................................................................... 62 Tipo de dados Number ................................................................................................................. 62 Tipo de dados uint ........................................................................................................................ 63 Tipo de dados Object ................................................................................................................... 64 Converses de tipo........................................................................................................................... 64 Tipos de dados ...................................................................................................................................... 70 Verificao de tipos em tempo de compilao........................................................................ 71

Classes dinmicas ............................................................................................................................ 75 Descries de tipos de dados ........................................................................................................ 76 Tipo de dados Boolean ................................................................................................................ 76 Tipo de dados int........................................................................................................................... 76 Tipo de dados Null ........................................................................................................................ 76 Tipo de dados Number ................................................................................................................. 76 Tipo de dados String .................................................................................................................... 77 Tipo de dados uint ........................................................................................................................ 78 Tipo de dados void........................................................................................................................ 78

A

Verificao de tipos em tempo de execuo ........................................................................... 72 O operador is ................................................................................................................................. 74 O operador as ................................................................................................................................ 74

R

Verificao de tipos .......................................................................................................................... 71

IM

Tipo de dados void........................................................................................................................ 64

A3

Tipo de dados String .................................................................................................................... 63

T

Tipo de dados Null ........................................................................................................................ 62

E IA

O operador as ................................................................................................................................ 60

Tipo de dados Object ................................................................................................................... 78 Converses de tipo........................................................................................................................... 79 Diferenciao entre maisculas e minsculas ........................................................................... 84 Sintaxe de pontos ............................................................................................................................. 84 Sintaxe de barras .............................................................................................................................. 85 Literais ................................................................................................................................................ 85 Ponto-e-vrgula .................................................................................................................................. 86 Parnteses.......................................................................................................................................... 86 Comentrios ....................................................................................................................................... 87 Palavras-chave e palavras reservadas ......................................................................................... 87 Constantes ......................................................................................................................................... 88 Diferenciao entre maisculas e minsculas ........................................................................... 89 Sintaxe de barras .............................................................................................................................. 90 Literais ................................................................................................................................................ 90 Ponto-e-vrgula .................................................................................................................................. 91 Parnteses.......................................................................................................................................... 91 Palavras-chave e palavras reservadas ......................................................................................... 92 Sintaxe .................................................................................................................................................... 94 Sintaxe de pontos ............................................................................................................................. 95 Sintaxe de barras .............................................................................................................................. 95 Literais ................................................................................................................................................ 95 Parnteses.......................................................................................................................................... 97 Palavras-chave e palavras reservadas ......................................................................................... 97 Constantes ......................................................................................................................................... 98 Operadores............................................................................................................................................100 Precedncia e associatividade de operadores ..........................................................................100 Operadores primrios .....................................................................................................................102 Operadores de sufixo ......................................................................................................................103 Operadores unrios .........................................................................................................................103 Operadores multiplicativos ............................................................................................................104 Operadores aditivos ........................................................................................................................104 Operadores de desvio em nvel de bits .......................................................................................104 Operadores relacionais...................................................................................................................105

A

Comentrios ....................................................................................................................................... 97

R

Ponto-e-vrgula .................................................................................................................................. 96

IM

Diferenciao entre maisculas e minsculas ........................................................................... 94

A4

Constantes ......................................................................................................................................... 93

T

Comentrios ....................................................................................................................................... 92

E IA

Sintaxe de pontos ............................................................................................................................. 89

Operadores de igualdade ...............................................................................................................105 Operadores lgicos em nvel de bits ...........................................................................................105 Operadores lgicos .........................................................................................................................106 Operador condicional......................................................................................................................106 Operadores de atribuio ...............................................................................................................106 Condicionais .........................................................................................................................................107 if..else .................................................................................................................................................107 if..else if ..............................................................................................................................................107 switch .................................................................................................................................................108 Repetio ...............................................................................................................................................109 for ........................................................................................................................................................109 for..in ..................................................................................................................................................109 while....................................................................................................................................................111 do..while.............................................................................................................................................111 Funes .................................................................................................................................................111 Conceitos de funes bsicas ......................................................................................................112 Funes como objetos ...................................................................................................................121 Programao orientada a objetos no ActionScript .......................................................................123 Definies de classes .....................................................................................................................124 Atributos de propriedade de classes ...........................................................................................126 Atributos de espao para nomes de controle de acesso .....................................................127 Atributos de espao para nomes definidos pelo usurio ....................................................129 Mtodos .............................................................................................................................................130 Mtodos do construtor ................................................................................................................131 Mtodos estticos ........................................................................................................................132 Mtodos de ocorrncia................................................................................................................133 Mtodos de acessor get e set ....................................................................................................134 Mtodos vinculados.....................................................................................................................135 Enumeraes com classes ............................................................................................................136 Classes de ativos incorporados....................................................................................................138 Uso de classes de ativos incorporados no Flash Professional ..........................................138 Uso de classes de ativos incorporadas com o compilador do Flex ..................................139 Interfaces ...............................................................................................................................................140

A

Variveis ............................................................................................................................................129

R

atributo static ................................................................................................................................129

IM

Classes ..................................................................................................................................................123

A5

Escopo da funo ............................................................................................................................122

T

Parmetros de funo .....................................................................................................................117

E IA

for each..in.........................................................................................................................................110

Definio de uma interface ............................................................................................................141 Implementao de uma interface em uma classe......................................................................142 Herana ..................................................................................................................................................143 Propriedades da ocorrncia e herana........................................................................................144 Substituio de mtodos................................................................................................................147 Propriedades estticas no herdadas .........................................................................................148 Propriedades estticas e a cadeia de escopos ..........................................................................149 Tpicos avanados .............................................................................................................................151 Histrico do suporte da OOP ao ActionScript ...........................................................................151 Objeto de classe do ActionScript 3.0 ...........................................................................................154 Objeto de caractersticas................................................................................................................154 Objeto de prottipo..........................................................................................................................155 Exemplo: GeometricShapes ..............................................................................................................158 Definio das classes GeometricShapes....................................................................................160 Definio do comportamento comum com interfaces..............................................................161 Definio das classes Shape.........................................................................................................161 Aprimoramento do aplicativo de amostra ...................................................................................166 Polimorfismo e o mtodo de fbrica ............................................................................................164

Fundamentos de programaoComo o ActionScript uma linguagem de programao, para conhec-lo, primeiro ser necessrio compreender alguns conceitos gerais de programao de computador.

O que os programas de computador fazemEm primeiro lugar, bom saber o que um programa de computador e o que ele faz. Um programa de computador consiste em dois aspectos principais:

Em termos gerais, um programa de computador apenas uma srie de comandos passo a passo que voc fornece ao computador e ele executa. Cada comando conhecido como instruo. No ActionScript, cada instruo escrita com um ponto-e-vrgula no final. Em essncia, tudo o que uma determinada instruo faz em um programa manipular alguns dados que esto armazenados na memria do computador. Um exemplo simples instruir o computador a acrescentar dois nmeros e armazenar o resultado na memria.

A

Ele uma srie de instrues ou etapas que o computador deve executar. Cada etapa envolve a manipulao de algumas informaes ou dados.

R

IM

A6

T

E IA

Espao para nomes AS3 ................................................................................................................157

Um exemplo mais complexo se houver o desenho de um retngulo em um lugar na tela e voc quer escrever um programa a fim de mov-lo para outro lugar. O computador se lembra de determinadas informaes sobre o retngulo: as coordenadas x, y nas quais ele est localizado, sua largura, altura, cor, e assim por diante. Cada uma dessas informaes est armazenada em um local na memria do computador. Um programa para mover o retngulo para um local diferente teria etapas como "trocar a coordenada x para 200; trocar a coordenada y para 150". Em outras palavras, ele especificaria novos valores para as coordenadas x e y. Em segundo plano, o computador faz alguma coisa com os dados para, na verdade, transformar esses nmeros na imagem que aparece na tela do computador. No entanto, no nvel bsico de detalhamento, suficiente saber que o processo de "mover um retngulo na tela" s envolve alterar os bits de dados na memria do computador.

Variveis e constantesA programao envolve principalmente trocar as informaes na memria do computador. Consequentemente, importante ter uma forma de representar uma informao em um programa. Uma varivel um nome que representa um valor na memria do computador. Durante a escrita de instrues para manipular valores, o nome da varivel escrito no lugar do valor. Sempre que se deparar com o nome da varivel no seu programa, o computador consultar a memria e usar o valor que encontrar nela. Por exemplo, se voc tiver duas variveis chamadas value1 e value2, cada uma contendo um nmero, para adicionar esses dois nmeros, voc pode escrever a instruo:value1 + value2

Quando executar as etapas, o computador verifica os valores de cada varivel e os adiciona juntos. No ActionScript 3.0, uma varivel consiste em trs partes diferentes:

Voc viu como o computador usa o nome como alocador de espao para o valor. O tipo de dados tambm importante. Ao criar uma varivel no ActionScript, voc especifica o tipo especfico de dados que devem ser mantidos. Deste ponto em diante, as instrues do seu programa podem armazenar apenas aquele tipo de dado na varivel. Voc pode manipular o valor usando as caractersticas em particular associadas com seu tipo de dados. No ActionScript, a criao de uma varivel (conhecida como declarar a varivel) requer o uso da instruo var:var value1:Number;

Esse exemplo diz para o computador criar uma varivel chamada value1, que pode armazenar apenas dados de Number. ("Number" um tipo de dados especfico definido no ActionScript.) Voc tambm pode armazenar um valor na varivel imediatamente:var value2:Number = 17;

Adobe Flash Professional

A

R

O nome da varivel O tipo de dados que pode ser armazenado nela O valor real armazenado na memria do computador

IM

A7

T

E IA

No Flash Professional, existe outro meio de declarar uma varivel. Durante a colocao de um smbolo de clipe de filme, smbolo de boto ou campo de texto no Palco, voc pode lhe dar um nome de ocorrncia no Inspetor de propriedades. Em segundo plano, o Flash Professional cria uma varivel com o mesmo nome que o nome da instncia. Voc pode usar esse nome no seu cdigo ActionScript para representar esse item de palco. Suponhamos, por exemplo, que voc tenha um smbolo de clipe de filme no Palco e d a ele o nome da instncia rocketShip. Sempre que usar a varivel rocketShip no cdigo ActionScript, voc, na verdade, est manipulando esse clipe de filme. Uma constante semelhante a uma varavel. Trata-se de um nome que representa um valor na memria do computador com o tipo de dado especificado. 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 quase igual sintaxe usada com uma varivel. A nica diferena que voc usa a palavra-chave const no lugar da palavra-chave var:const SALES_TAX_RATE:Number = 0.07;

Tipos de dados

Os tipos de dados simples representam uma nica informao: por exemplo, um nico nmero ou uma nica seqncia de texto. No entanto, a maioria dos tipos de dados definidos no ActionScript so complexos. Eles representam um conjunto de valores em um continer simples. Por exemplo, uma varivel com o tipo de dados Date representa um valor nico (um momento no tempo). No entanto, esse valor de data representado

A

Seqncia de caracteres: um valor textual, como um nome ou o texto do captulo de um livro Numrico: o ActionScript 3.0 inclui trs tipos de dados especficos para dados numricos: o Nmero: qualquer valor numrico, incluindo valores com ou sem uma frao o int: um inteiro (um nmero inteiro sem uma frao) o 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

R

No ActionScript, h vrios tipos de dados que voc pode usar como os tipos de dados da varivel que voc criar. Alguns desses tipos de dados podem ser entendidos como "simples" ou "fundamentais":

IM

A8

Uma constante til para definir um valor que usado em vrios locais em um projeto e que no alterado sob circunstncias normais. O uso de uma constante em vez de um valor literal torna o cdigo mais legvel. Por exemplo, pense em duas verses do mesmo cdigo. Uma multiplica um preo por SALES_TAX_RATE. A outra multiplica o preo por 0.07. A verso que usa a constante SALES_TAX_RATE mais fcil de entender. Alm disso, suponhamos que o valor definido pela constante seja alterado. Se voc usar uma constante para representar esse valor em todo o projeto, voc poder trocar o valor em um lugar (a declarao constante). Por outro lado, voc teria que troc-lo em vrios lugares se tiver usado valores literais hard-coded.

T

E IA

com diversos valores: dia, ms, ano, horas, minutos, segundos etc., que so nmeros individuais. Em geral, as pessoas pensam em uma data como um valor nico, e voc pode tratar uma data como um valor nico criando uma varavel Date. No entanto, internamente o computador pensa nele como um grupo de vrios valores que, postos juntos, definem uma data nica. A maioria dos tipos de dados embutidos, bem como os definidos pelos programadores, so tipos de dados complexos. Entre os tipos de dados complexos que talvez voc conhea esto:

MovieClip: um smbolo de clipe de filme TextField: um campo de texto de entrada ou dinmico SimpleButton: um smbolo de boto Date: informaes sobre um momento nico no tempo (uma data e hora)

Trabalho com o objetosO ActionScript conhecido como uma linguagem de programao orientada a objetos. A programao orientada a objetos simplesmente uma abordagem a essa programao. Na verdade, no nada alm de uma forma de organizar o cdigo em um programa, usando objetos. Antes o termo "programa de computador" era definido como uma srie de etapas ou instrues que o computador realiza. De forma conceitual, ento, voc pode imaginar um programa de computador como uma longa lista de instrues. No entanto, na programao orientada a objetos, as instrues do programa so divididas entre objetos diferentes. O cdigo agrupado em pedaos de funcionalidade; por isso, os tipos relacionados de funcionalidade ou as informaes relacionadas so agrupados em um continer. Adobe Flash Professional Se voc j trabalhou com smbolos no Flash Professional, ento est acostumado a trabalhar com objetos. Imagine que voc definiu um smbolo de clipe de filme, como o desenho de um retngulo, e colocou uma cpia dele no Palco. Esse smbolo de clipe de

A

R

IM

A9

O tipo de dados da varivel myVariable Number. A varivel myVariable uma ocorrncia de Number. A varivel myVariable um objeto Number. A varivel myVariable uma ocorrncia da classe Number.

T

E IA

Duas palavras que, em geral, so usadas como sinnimos de tipos de dados so classe e objeto. Uma classe simplesmente a definio de um tipo de dado. como um modelo para todos os objetos do tipo de dados, como dizer "todas as variveis do tipo de dados Example tm estas caractersticas: A, B and C. Um objeto, por outro lado, apenas uma instncia real de uma classe. Por exemplo, a varivel cujo tipo de dados MovieClip poderia ser descrita como um objeto MovieClip. Estas so formas diferentes de dizer a mesma coisa:

filme tambm (literalmente) um objeto no ActionScript; uma ocorrncia da classe MovieClip. H diversas caractersticas do clipe de filme que voc pode modificar. Quando est selecionado, voc pode trocar os valores no inspetor de propriedades, como a coordenada x ou sua largura. Voc tambm pode fazer vrios ajustes de cor, como trocar o alfa (transparncia) ou aplicar um filtro de sombra projetada. Outras ferramentas do Flash Professional permitem fazer mais alteraes, como usar a ferramenta Transformao livre para girar o retngulo. Todas essas formas por meio das quais voc pode modificar um smbolo de clipe de filme no Flash Professional tambm esto disponveis no ActionScript. Voc modifica o clipe de filme no ActionScript alterando os dados que so colocados juntos em um nico pacote chamado objeto MovieClip. Na programao orientada a objetos do ActionScript, h trs tipos de caractersticas que qualquer classe pode incluir:

Propriedades Mtodos Eventos

Esses elementos ajudam a gerenciar as partes dos dados usadas pelo programa e a decidir quais aes so executadas em uma determinada ordem.

Propriedades

Este cdigo usa a propriedade de rotao fazendo com que o MovieClip square gire para corresponder rotao do MovieClip triangle:square.rotation = triangle.rotation;

Este cdigo altera a escala horizontal do MovieClip square para que ele fique uma vez e meia maior do que antes:square.scaleX = 1.5;

Observe a estrutura comum: voc usa uma varivel (square, triangle) como o nome do objeto, seguido de um ponto (.) e, depois, o nome da propriedade (x, rotation, scaleX). O ponto, conhecido como operador ponto, usado para indicar que voc est acessando um dos elementos filho de um objeto. A estrutura inteira reunida, "nome da varivel-ponto-

A

square.x = 100;

R

A seguir, apresentamos alguns exemplos de cdigo do ActionScript que usa propriedades. Esta linha de cdigo move o MovieClip chamado square para 100 pixels na coordenada x:

IM

Uma propriedade representa uma das partes dos dados que so compactados em um objeto. Um exemplo de objeto de msica pode ter propriedades chamadas artist e title; a classe MovieClip tem propriedades como rotation, x, width e alpha. Voc trabalha com propriedades como variveis individuais. Na verdade, voc pode pensar nas propriedades como simplesmente as variveis "filho" contidas em um objeto.

A10

T

E IA

nome da propriedade", usada como uma nica varivel, como um nome para um nico valor na memria do computador.

MtodosUm mtodo uma ao que um objeto pode realizar. Por exemplo, suponhamos que voc tenha feito um smbolo de clipe de filme no Flash Professional com vrios quadros-chave e animao em sua linha de tempo. Esse clipe de filme pode reproduzir, ou parar, ou ser instrudo a mover o indicador de reproduo para um quadro em particular. Este cdigo instrui o MovieClip chamado shortFilm a iniciar a reproduo:shortFilm.play();

shortFilm.stop();

Este cdigo faz um MovieClip chamado shortFilm mover o indicador de reproduo para o Quadro 1 e parar a reproduo ( como retroceder um vdeo):

var numericData:Number = 9; var textData:String = numericData.toString();

Por exemplo, voc usaria o mtodo toString() se quisesse exibir o valor de uma varivel Number em um campo de texto na tela. A propriedade text da classe TextField definida como um String, por isso pode conter apenas valores de texto. (A propriedade do texto representa o contedo de texto real exibido na tela.) Essa linha de cdigo converte o valor numrico na varivel numericData para texto. Ento, ela cria o valor apresentado na tela no objeto TextField, chamado calculatorDisplay:calculatorDisplay.text = numericData.toString();

A

Diferentemente das propriedades (e variveis), os mtodos no so usados como alocadores de espao de valor. Entretanto, alguns mtodos podem executar clculos e retornar um resultado que pode ser usado como uma varivel. Por exemplo, o mtodo toString() da classe Number converte o valor em sua representao de texto:

R

Os mtodos, assim como as propriedades, so acessados escrevendo-se o nome do objeto (uma varivel), um ponto e o nome do mtodo seguido de parnteses. Os parnteses so uma forma de indicar que voc est chamando o mtodo ou, em outras palavras, instruindo o objeto a executar aquela ao. s vezes, os valores (ou as variveis) so colocados entre parnteses, como uma forma de passar adiante informaes adicionais necessrias para executar a ao. Esses valores so conhecidos como parmetros de mtodo. Por exemplo, o mtodo gotoAndStop() precisa de informaes sobre para qual quadro ir, e por isso requer um nico parmetro entre parnteses. Outros mtodos, como play() e stop(), so auto-explicativos, por isso no requerem informaes extras. No entanto, eles ainda so escritos com parnteses.

IM

A11

T

shortFilm.gotoAndStop(1);

E IA

Esta linha faz o MovieClip chamado shortFilm parar a reproduo (o indicador de reproduo pra; como pausar um vdeo):

EventosUm programa de computador uma srie de instrues que o computador executa em etapas. Alguns programas de computador simples consistem em nada mais do que algumas etapas que ele executa e depois encerrado. Entretanto, os programas do ActionScript so criados para continuar a execuo e esperar a entrada do usurio ou a ocorrncia de outras coisas. Os eventos so mecanismos que determinam quais instrues o computador executa em um determinado momento. Basicamente, os eventos so fenmenos que acontecem, sobre os quais o ActionScript informado e aos quais pode responder. Muitos eventos esto relacionados com a interao do usurio, como o usurio clicar em um boto ou pressionar uma tecla no teclado. Tambm h outros tipos de eventos. Por exemplo, se voc usar o ActionScript para carregar uma imagem externa, h um evento que poder avis-lo quando o carregamento da imagem for concludo. Quando um programa ActionScript est sendo executado, conceitualmente ele apenas "senta" e espera que certas coisas aconteam. Quando essas coisas acontecem, o cdigo especfico do ActionScript que voc especificou para esses eventos executado.

Tratamento de eventos bsico

Em qualquer momento no qual voc grava o cdigo ActionScript para manipular eventos, ele exige esses trs elementos. O cdigo segue esta estrutura bsica (os elementos em negrito so espaos reservados que voc preencheria para o seu caso especfico):function eventResponse(eventObject:EventType):void { // Actions performed in response to the event go here. } eventSource.addEventListener(EventType.EVENT_NAME, eventResponse);

Esse cdigo faz duas coisas. Primeiro, ele define uma funo, que a forma de especificar as aes que voc deseja executar em resposta ao evento. Em seguida, ele chama o mtodo addEventListener() do objeto de origem. Chamar addEventListener() essencialmente "inscreve" a funo no evento especificado. Quando o evento acontece,

A

R

A origem do evento: para qual objeto o evento dever ocorrer? Por exemplo, em qual boto se clicou, ou qual objeto Loader est carregando a imagem? A origem do evento tambm conhecida como destino do evento. Tem esse nome porque o objeto no qual o computador focaliza o evento (ou seja, onde o evento realmente acontece). O evento: o que vai acontecer, a qual fenmeno voc deseja responder? importante identificar o evento especfico, porque muitos objetos acionam diversos eventos. A resposta: quais etapas voc deseja executar quando o evento acontecer?

IM

A12

T

A tcnica para especificar determinadas aes que devem ser executadas em resposta a eventos especficos conhecida como tratamento de eventos. Durante a escrita do cdigo do ActionScript para executar o tratamento de eventos, h trs elementos importantes a serem identificados:

E IA

so realizadas as aes da funo. Pensemos em cada uma dessas partes com mais detalhes. Uma funo fornece um meio de agrupar as aes, com um nico nome, que como um nome de atalho, para executar as aes. Uma funo idntica a um mtodo, com a diferena de que no est necessariamente associada com uma classe especfica. (Na verdade, o termo "mtodo" poderia ser definido como uma funo que est associada com uma classe em particular.) Durante a criao de uma funo para tratamento de eventos, voc escolhe o nome da funo (chamada de eventResponse neste caso). Voc tambm especifica um parmetro (chamado eventObject neste exemplo). A especificao de um parmetro de funo como declarar uma varivel, por isso voc tambm deve indicar o tipo de dados do parmetro. (Neste exemplo, o tipo de dados do parmetro EventType.) Cada tipo de evento que voc deseja escutar associado a uma classe do ActionScript. O tipo de dados que voc define para o parmetro de funo sempre a classe associada ao evento especfico ao qual deseja responder. Por exemplo, um evento click (acionado quando o usurio clica em um item) associado classe MouseEvent. Para escrever uma funo de ouvinte para um evento click, voc define essa funo com um parmetro com o tipo de dados MouseEvent. Finalmente, entre chaves ({ ... }), voc escreve as instrues que deseja que o computador execute quando o evento ocorrer. A funo de manipulao de eventos escrita. Em seguida, voc diz para o objeto de origem de evento (o objeto para o qual o evento acontece, por exemplo, o boto) que voc deseja que ele chame sua funo quando o evento acontecer. Voc registra sua funo com o objeto de origem de evento chamando o mtodo addEventListener() daquele objeto (todos os objetos que tm eventos tambm tm um mtodo addEventListener()). O mtodo addEventListener() usa dois parmetros:

Veja a seguir uma descrio passo a passo do processo que acontece durante a criao de um ouvinte de eventos. Neste caso, um exemplo de criao de uma funo de ouvinte que chamada quando um objeto myButton clicado. O cdigo real escrito pelo programador o seguinte:function eventResponse(event:MouseEvent):void { // Actions performed in response to the event go here. } myButton.addEventListener(MouseEvent.CLICK, eventResponse);

Apresentaremos a seguir o funcionamento desse cdigo, quando executado:

A

Processo de tratamento de eventos

R

O primeiro o nome do evento especfico ao qual voc deseja responder. Cada evento est afiliado com uma classe especfica. Todas as classes de evento tm um valor especial, que como um nome exclusivo, definido para cada um de seus eventos. Voc usa esse valor para o primeiro parmetro. O segundo o nome da funo de resposta do evento. Observe que um nome de funo escrito sem parnteses quando transmitido como um parmetro.

IM

A13

T

E IA

1. Quando o arquivo SWF carregado, o computador registra o fato de que h uma funo chamada eventResponse().

Visualizar grfico inteiro 2. Em seguida, o computador executa o cdigo (especificamente, as linhas de cdigo que no esto contidas em uma funo). Neste caso, apenas uma linha de cdigo: chamar o mtodo addEventListener() no objeto de origem do evento (chamado myButton) e transmitir a funo eventResponse como um parmetro.

Visualizar grfico inteiro

Visualizar grfico inteiro

3. Em algum momento, o usurio clica no objeto myButton, acionando o evento click (identificado como MouseEvent.CLICK no cdigo).

A

Ento, acontece o seguinte: a. criado um objeto que uma ocorrncia da classe associada com o evento em questo (MouseEvent neste exemplo). Para muitos eventos, esse objeto uma ocorrncia da classe Event. Para os eventos de mouse, uma ocorrncia MouseEvent. Para outros eventos, uma ocorrncia da classe que est associada com esse evento. Esse objeto criado conhecido como o objeto de evento e contm informaes especficas sobre o evento que ocorreu: qual o tipo de evento, onde ele ocorreu e outras informaes especficas de evento, se aplicvel.

R14

IM

A

T

Internamente, myButton mantm uma lista de funes que esto ouvindo cada um de seus eventos. Quando o mtodo addEventListener() chamado, myButton armazena a funo eventResponse() em sua lista de ouvintes de evento.

E IA

Visualizar grfico inteiro b. Em seguida, o computador verifica a lista de ouvintes de eventos armazenada por myButton. Ele verifica todas essas funes, chamando uma de cada vez e transmitindo o objeto de evento para a funo como um parmetro. Como a funo eventResponse() um dos ouvintes de myButton, como parte desse processo, o computador chama a funo eventResponse().

Visualizar grfico inteiro

c. Quando a funo eventResponse() chamada, o cdigo nela executado e as aes especificadas so realizadas.

Visualizar grfico inteiro

Exemplos de tratamento de eventosA seguir h outros exemplos concretos do cdigo de manipulao de evento. Esses exemplos servem para lhe dar uma ideia de alguns elementos de evento comuns e as possveis variaes disponveis quando voc grava o cdigo de manipulao de evento:

this.stop();

function playMovie(event:MouseEvent):void { this.play(); } playButton.addEventListener(MouseEvent.CLICK, playMovie);

function updateOutput(event:TextEvent):void { var pressedKey:String = event.text;

A

Clicar em um boto para iniciar a reproduo do clipe de filme atual. No exemplo a seguir, playButton o nome da ocorrncia do boto, e this um nome especial que significa o objeto atual:

Detectar tipos em um campo de texto: Neste exemplo, entryText um campo de texto de entrada, e outputText um campo de texto dinmico:

R

IM

A15

T

E IA

outputText.text = "You typed: " + pressedKey; } entryText.addEventListener(TextEvent.TEXT_INPUT, updateOutput);

Clicar em um boto para navegar em uma URL. Nesse caso, linkButton o nome de ocorrncia do boto:

function gotoAdobeSite(event:MouseEvent):void { var adobeURL:URLRequest = new URLRequest("http://www.adobe.com/"); navigateToURL(adobeURL); } linkButton.addEventListener(MouseEvent.CLICK, gotoAdobeSite);

Criar ocorrncias de objetosPara que voc possa usar um objeto no ActionScript, primeiro, ele deve existir. Uma parte da criao de um objeto declarar uma varivel; porm, a declarao de uma varivel s cria um lugar vazio na memria do computador. Sempre atribua um valor real varivel (criar um objeto e armazen-lo na varivel), antes de tentar us-lo ou manipul-lo. O processo de criar um objeto conhecido como instanciar o objeto. Em outras palavras, voc cria uma ocorrncia de uma classe em particular. Existe uma maneira simples de criar uma ocorrncia de objeto que no envolve o ActionScript. No Flash Professional, coloque um smbolo de clipe de filme, smbolo de boto ou campo de texto no Palco e atribua-o a um nome de instncia. O Flash Professional automaticamente declara uma varivel com esse nome de instncia, cria uma instncia de objeto e armazena esse objeto na varivel. De forma semelhante, no Flex voc cria um componente no MXML ou codificando uma tag MXML ou colocando o componente no editor, no modo Flash Builder Design. Ao atribuir um ID a esse componente, este ID se torna o nome de uma varivel ActionScript que contm essa ocorrncia do componente. No entanto, nem sempre voc deseja criar um objeto visualmente, e para os objetos novisuais voc no pode. H vrias formas adicionais atravs das quais voc pode criar instncias de objeto usando apenas o ActionScript. Com vrios tipos de dados do ActionScript, voc pode criar uma ocorrncia usando uma expresso literal, que um valor escrito diretamente no cdigo do ActionScript. Eis alguns exemplos: Valor numrico literal (insere o nmero diretamente):var someNumber:Number = 17.239; var someNegativeInteger:int = -53; var someUint:uint = 22;

Valor da seqncia de caracteres literal (envolve o texto com aspas duplas):var firstName:String = "George"; var soliloquy:String = "To be or not to be, that is the question...";

A

R

IM

A16

T

E IA

Valor booleano literal (usa os valores literais true ou false):var niceWeather:Boolean = true; var playingOutside:Boolean = false;

Valor Array literal (envolve uma lista de valores separados por vrgula entre colchetes):var seasons:Array = ["spring", "summer", "autumn", "winter"];

Valor XML literal (insere o XML diretamente):var employee:XML = Harold Webster ;

A forma mais comum de criar uma ocorrncia para qualquer tipo de dados usar o operador new com o nome da classe, como mostrado aqui:var raceCar:MovieClip = new MovieClip(); var birthday:Date = new Date(2006, 7, 9);

var someNumber:Number = 6.33; var someNumber:Number = new Number(6.33);

importante se familiarizar com a forma como o novo ClassName() cria objetos. Muitos tipos de dados ActionScript no tm uma representao visual. Consequentemente, no podem ser criados colocando-se um item no Palco do Flash Professional ou no modo Design do editor MXML do Flash Builder. Voc s pode criar uma ocorrncia de qualquer um desses tipos de dados no ActionScript usando o operador new. Adobe Flash Professional No Flash Professional, o operador new tambm pode ser usado para criar uma ocorrncia de um smbolo de clipe de filme que definido na Biblioteca mas no colocado no Palco.

Elementos de programa comuns17

A

R

Mesmo para esses tipos de dados que permitem criar ocorrncias usando uma expresso literal, voc tambm pode usar o operador new para criar uma ocorrncia de objeto. Por exemplo, as duas linhas de cdigo a seguir fazem a mesma coisa:

IM

O ato de criar de um objeto usando o operador new, muitas vezes, descrito como chamar o construtor da classe Um construtor um mtodo especial que chamado como parte do processo de criar uma ocorrncia de uma classe. Observe que, ao criar uma ocorrncia nesta forma, voc coloca parnteses depois do nome da classe. s vezes, voc especifica os valores do parmetro nos parnteses. H duas coisas que voc pode fazer ao chamar um mtodo.

A

T

E IA

O ActionScript tambm define expresses literais para os tipos de dados Array, RegExp, Object e Function.

H alguns blocos estruturais extras que voc pode usar para criar um programa ActionScript.

OperadoresOs operadores so smbolos (ou, ocasionalmente, palavras) essenciais que so usados para executar clculos. Eles so muito usados em operaes matemticas e tambm para comparar valores. Em geral, um operador usa um ou mais valores e "obtm" um nico resultado. Por exemplo:

O operador de adio (+) adiciona dois valores, tendo como resultado um nico nmero:var sum:Number = 23 + 32;

var energy:Number = mass * speedOfLight * speedOfLight;

O operador de igualdade (==) compara se dois valores so iguais, tendo como resultado um nico valor verdadeiro ou falso (booleano):if (dayOfWeek == "Wednesday") { takeOutTrash(); }

Comentrios

Comentrio de uma linha: um comentrio de uma linha criado colocando duas barras em qualquer lugar de uma linha. O computador ignora tudo depois das barras invertidas, at o final daquela linha:// This is a comment; it's ignored by the computer. var age:Number = 10; // Set the age to 10 by default.

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 (*/). O computador ignora tudo entre os marcadores de incio e fim, independentemente de quantas linhas o comentrio abrange:/*

A

medida que estiver escrevendo ActionScript, voc vai querer, em geral, deixar notas para voc mesmo. Por exemplo, s vezes voc quer explicar como certas linhas de cdigo funcionam, ou por que voc fez uma escolha em particular. Os comentrios de cdigo so uma ferramenta que voc pode usar para escrever um texto que o computador ignora no seu cdigo. O ActionScript inclui dois tipos de comentrios:

R

IM

Conforme mostrado aqui, o operador de igualdade e os outros operadores de "comparao" so usados, em geral, com a instruo if para determinar se certas instrues devem ou no ser executadas.

A18

T

E IA

O operador de multiplicao (*) multiplica dois valores, tendo como resultado um nico nmero:

This is a long description explaining what a particular function is used for or explaining a section of code. In any case, the computer ignores these lines. */

Outro uso comum dos comentrios "desligar" temporariamente uma ou mais linhas do cdigo. Por exemplo, voc pode usar os comentrios se estiver testando uma forma diferente de fazer alguma coisa. Tambm use-os para tentar descobrir por que alguns cdigos ActionScript no esto funcionando da forma esperada.

Controle do fluxoMuitas vezes em um programa, voc deseja repetir determinadas aes, executar apenas algumas e outras no, executar aes conforme condies especficas etc. O controle de fluxo o controle sobre as aes que so executadas. H vrios tipos de elementos de controle de fluxo disponveis no ActionScript.

A

if (age < 20) { // show special teenager-targeted content }

A parceira da instruo if, a instruo else, permite designar instrues alternativas que o computador realiza se a condio no for true:if (username == "admin") { // do some administrator-only things, like showing extra options } else { // do some non-administrator things }

R

Funes: as funes so como atalhos. Fornecem um meio de agrupar uma srie de aes sob um nico nome e podem ser usadas para realizar clculos. As funes so necessrias para tratar eventos, mas tambm so usadas como ferramenta geral para agrupar uma srie de instrues. Loops: as estruturas de loop permitem designar um conjunto de instrues que o computador executa por um determinado nmero de vezes ou at que alguma condio seja alterada. Com freqncia, os loops so usados para manipular vrios itens relacionados, empregando uma varivel cujo valor alterado sempre que o computador completa o loop. Instrues condicionais: as instrues condicionais fornecem uma forma de designar certas instrues que so realizadas apenas sob determinadas circunstncias. Tambm so usadas para fornecer conjuntos alternativos de instrues para condies diferentes. O tipo mais comum de instruo condicional a instruo if. A instruo if verifica um valor ou uma expresso entre parnteses. Se o valor for true, as linhas de cdigo entre chaves so realizadas. Do contrrio, so ignoradas. Por exemplo:

IM

A19

T

E IA

Exemplo: parte de portflio de animao (Flash Professional)Este exemplo foi criado para lhe oferecer uma oportunidade de ver pela primeira vez como possvel juntar partes do ActionScript para obter um aplicativo completo. A parte de portflio de animao um exemplo de como voc poderia pegar uma animao linear existente e acrescentar alguns elementos interativos menores. Por exemplo, voc poderia incorporar uma animao criada para um cliente em um portflio on-line. O comportamento interativo que voc vai adicionar animao inclui dois botes nos quais o espectador poder clicar: um para iniciar a animao e outro para navegar em uma URL separada (como o menu do portflio ou a home page do autor). O processo de criar essa pea pode ser dividido nestas sees principais: 1. 2. 3. 4. Preparar o arquivo FLA para adicionar elementos interativos e do ActionScript. Criar e adicionar os botes. Escrever o cdigo do ActionScript. Testar o aplicativo.

Preparao para adicionar interatividade

Para configurar o FLA para adicionar elementos interativos: 1. Crie um arquivo FLA com uma animao simples, como uma interpolao de movimento ou uma interpolao de forma. Se voc j tiver um arquivo FLA contendo a animao que est apresentando no projeto, abra esse arquivo e salveo com um novo nome. 2. Decida onde na tela voc vai querer que os dois botes apaream. Um boto serve para iniciar a animao e o outro, para criar um link para o portflio do autor ou para a home page. Se necessrio, limpe o Palco ou adicione espao para esse novo contedo. Se a animao j no tiver uma, voc pode criar uma tela de inicializao no primeiro quadro. Nesse caso, voc provavelmente vai querer trocar a animao, para que comece no Quadro 2 ou depois disso. 3. Adicione uma nova camada, acima das outras camadas na Linha de tempo, e nomeie-a como buttons. nessa camada que voc vai acrescentar os botes. 4. Adicione uma nova camada, acima das camadas de botes, e renomeie-a como actions. Nela, voc adicionar o cdigo do ActionScript para seu aplicativo.

Criao e adio de botesEm seguida, voc vai criar e posicionar os botes que formam o centro do aplicativo interativo. Para criar e adicionar botes ao FLA:

A

R

IM

A20

Para que voc possa adicionar elementos interativos sua animao, bom configurar o arquivo FLA criando alguns locais para adicionar o novo contedo. Essa tarefa inclui criar espao real no Palco em que os botes podem ser colocados. Tambm inclui a criao de "espao" no arquivo FLA para manter separados os itens que so diferentes.

T

E IA

1. Usando as ferramentas de desenho, crie a aparncia visual do seu primeiro boto (o boto "reproduzir") na camada de botes. Por exemplo, desenhe uma figura oval na horizontal com texto em cima. 2. Usando a ferramenta Seleo, selecione todas as partes grficas do boto sozinho. 3. No menu principal, escolha Modificar > Converter em smbolo. 4. Na caixa de dilogo, escolha Boto como o tipo de smbolo, d um nome ao smbolo e clique em OK. 5. Com o boto selecionado, no Inspetor de propriedades, d ao boto o nome de ocorrncia playButton. 6. Repita as etapas de 1 a 5 para criar o boto que leva o espectador home page do autor. Chame este boto de homeButton.

Gravao do cdigo

stop();

Para escrever cdigo para iniciar a animao quando o boto de reproduo for clicado: No fim do cdigo digitado nas etapas anteriores, adicione duas linhas vazias. Digite o seguinte cdigo na parte inferior do script:function startMovie(event:MouseEvent):void { this.play(); }

Na linha seguinte ao cdigo adicionado na etapa anterior, digite esta linha de cdigo:playButton.addEventListener(MouseEvent.CLICK, startMovie);

A

Este cdigo define uma funo chamada startMovie(). Quando startMovie() chamado, elefaz com que a linha de tempo principal comece a reproduzir.

R

IM

1. Selecione o quadro-chave no Quadro 1 da camada de aes. 2. Para abrir o painel Aes, no menu principal, escolha Janela > Aes. 3. No painel Script, digite o seguinte cdigo:

A21

Para criar um cdigo que pare o indicador de reproduo quando ele entrar no Quadro 1:

T

Parar o indicador de reproduo assim que o arquivo SWF carregar (quando o indicador de reproduo entrar no Quadro 1). Monitorar um evento para iniciar a reproduo do arquivo SWF quando o usurio clicar no boto de reproduo. Monitorar um evento para enviar o navegador URL apropriada quando o usurio clicar no boto da home page do autor.

E IA

O cdigo do ActionScript para este aplicativo pode ser dividido em trs conjuntos de funcionalidade, embora todos o insiram no mesmo lugar. O cdigo faz trs coisas:

Esta linha de cdigo registra a funo startMovie() como um ouvinte para o evento click de playButton. Em outras palavras, com ela, sempre que o boto chamado playButton clicado, a funo startMovie() chamada. Para escrever o cdigo por meio do qual o navegador acessa uma URL quando o boto da home page for clicado: No fim do cdigo digitado nas etapas anteriores, adicione duas linhas vazias. Digite este cdigo na parte inferior do script:function gotoAuthorPage(event:MouseEvent):void { var targetURL:URLRequest = new URLRequest("http://example.com/"); navigateToURL(targetURL); }

Este cdigo define uma funo chamada gotoAuthorPage(). Essa funo primeiro cria uma instncia URLRequest que representa o URL http://exemplo.com/. Em seguida, ela passa esse URL para a funo navigateToURL(), fazendo com que o navegador do usurio abra esse URL. Na linha seguinte ao cdigo adicionado na etapa anterior, digite esta linha de cdigo:homeButton.addEventListener(MouseEvent.CLICK, gotoAuthorPage);

Teste do aplicativo

Para testar o aplicativo:

1. Do menu principal, escolha Controlar > Testar filme. O Flash Professional cria o arquivo SWF e o abre em uma janela do Flash Player. 2. Tente os dois botes para verificar se eles agem conforme o esperado. 3. Se os botes no funcionarem, veja algumas coisas que voc pode verificar: o Os dois botes tm nomes de ocorrncia distintos? o As chamadas de mtodo addEventListener() usam os mesmos nomes que os nomes de ocorrncia dos botes? o Os nomes de evento corretos foram usados nas chamadas de mtodo addEventListener()? o Foi especificado o parmetro correto para cada uma das funes? (Os dois mtodos precisam de um nico parmetro com o tipo de dados MouseEvent.) Todos esses erros e a maioria de outros erros possveis resultam em uma mensagem de erro. A mensagem de erro pode aparecer quando voc escolh o

A

R

Agora, o aplicativo est completamente funcional. Vamos test-lo para ver se isso verdade.

IM

A22

Esta linha de cdigo registra a funo gotoAuthorPage() como um ouvinte para o evento click de homeButton. Em outras palavras, com ela, sempre que o boto chamado homeButton clicado, a funo gotoAuthorPage() chamada.

T

E IA

comando Testar filme ou quando voc clica no boto enquanto est testando o projeto. Analise o painel Erros do compilador para ver os erros (aqueles que ocorrem quando voc escolhe pela primeira vez o Testar filme). Verifique se h erros em tempo de execuo no painel Sada, os quais ocorrem enquanto o contedo est sendo reproduzido, por exemplo, quando clica em um boto.

Criao de aplicativos com o ActionScriptO processo de escrever no ActionScript para criar um aplicativo vai alm de apenas conhecer a sintaxe e os nomes das classes que sero usadas. A maioria da documentao da Plataforma Flash trata desses dois tpicos (sintaxe e uso das classes ActionScript). No entanto, para construir um aplicativo ActionScript, voc tambm vai querer saber informaes como:

Opes para organizar seu cdigo

A colocao de cdigo do ActionScript em quadros fornece um meio simples de adicionar comportamentos a aplicativos incorporados no Flash Professional. Voc pode adicionar cdigo a qualquer quadro na linha de tempo principal ou na linha de tempo de qualquer smbolo do MovieClip. Entretanto, essa flexibilidade tem um preo. Durante a criao de aplicativos grandes, fcil perder o controle de quais quadros contm quais scripts. Essa estrutura complicada pode fazer com que fique mais difcil manter o aplicativo com o tempo. Muitos desenvolvedores simplificam a organizao do cdigo do ActionScript no Flash Professional, colocando o cdigo somente no primeiro quadro de uma linha de tempo ou em uma camada especfica no documento Flash. A separao do seu cdigo facilita a localizao e a manuteno do cdigo nos arquivos FLA do Flash. No entanto, o mesmo cdigo no pode ser usado em outro projeto do Flash Professional sem copiar e colar o cdigo no novo arquivo.

A

R

No Flash Professional, voc pode adicionar cdigo do ActionScript a qualquer quadro na linha de tempo. Esse cdigo executado enquanto o filme estiver sendo reproduzido, quando o indicador de reproduo entrar nesse quadro.

IM

Armazenamento de cdigo em quadros em uma linha de tempo do Flash Professional

A23

Voc pode usar o cdigo do ActionScript 3.0 para acionar tudo, desde simples animaes grficas at sistemas complexos de processamento de transaes de cliente-servidor. Dependendo do tipo de aplicativo que est sendo criado, use uma ou mais dessas formas de incluir o ActionScript no seu projeto.

T

E IA

Que programas podem ser usados para escrever ActionScript? Como voc organiza o cdigo ActionScript? Como voc inclui o cdigo ActionScript em um aplicativo? Que etapas voc segue para desenvolver um aplicativo ActionScript?

Para facilitar o uso do seu cdigo ActionScript em outros projetos do Flash Professional no futuro, armazene o cdigo em arquivos externos do ActionScript (os arquivos de texto com a extenso .as). Incorporao de cdigo em arquivos MXML do Flex Em um ambiente de desenvolvimento Flex como o Flash Builder, voc pode incluir o cdigo ActionScript dentro de uma tag em um arquivo Flex MXML. Entretanto, essa tcnica pode aumentar a complexidade nos projetos grandes e dificultar o uso do mesmo cdigo em outro projeto Flex. Para facilitar o uso do seu cdigo ActionScript em outros projetos Flex no futuro, armazene o cdigo em arquivos ActionScript externos. Nota: Voc pode especificar um parmetro de origem para uma tag . Usar um parmetro de origem permite "importar" o cdigo ActionScript de um arquivo externo, como se fosse digitado diretamente na tag . O arquivo de origem usado, porm, no pode definir sua prpria classe, que limita sua capacidade de reutilizao. Armazenamento de cdigo em arquivos do ActionScript

Ao

O ActionScript escrito dessa forma pode ser acessado usando a instruo include no ActionScript ou a tag em Flex MXML. A instruo include de ActionScript diz para o compilador incluir o contedo de um arquivo ActionScript externo em um local especfico e dentro de um determinado escopo em um script. O resultado o mesmo que se o cdigo fosse inserido l diretamente. Na linguagem MXML, o uso de uma tag com um atributo de origem identifica um ActionScript externo que o compilador carrega naquele ponto no aplicativo. Por exemplo, a seguinte tag carrega um arquivo externo do ActionScript chamado Box.as:

Definio da classe do ActionScript: uma definio de uma classe do ActionScript, incluindo suas definies de mtodo e propriedade. Ao definir uma classe, voc pode acessar o cdigo ActionScript na classe criando uma instncia da classe e usando suas propriedades, mtodos e eventos. O uso de suas prprias classes idntico ao uso de qualquer uma das classes ActionScript incorporadas, e exige duas partes: Use a instruo import para especificar o nome completo da classe, para que o compilador do ActionScript saiba onde encontr-la. Por exemplo, para usar a classe MovieClip no ActionScript, importe a classe usando seu nome completo, incluindo o pacote e a classe:

R

IM

A24

Cdigo do ActionScript no estruturado: linhas de cdigo do ActionScript, incluindo instrues ou definies de funes, escritas como se fossem inseridas diretamente em um script de linha de tempo ou arquivo MXML.

T

Se o seu projeto envolve uma quantidade significativa de cdigo do ActionScript, a melhor maneira de organizar seu cdigo em arquivos de origem do ActionScript separados (arquivos de texto com a extenso .as). Um arquivo do ActionScript pode ser estruturado de duas formas, dependendo da maneira como voc pretende us-lo no aplicativo.

E IA

import flash.display.MovieClip;

Se preferir, voc pode importar o pacote que contm a classe MovieClip, que equivalente a escrever instrues import separadas para cada classe no pacote:import flash.display.*;

As classes de nvel superior so a nica exceo regra de que uma classe deve ser importada para us-la no seu cdigo. Essas classes no so definidas em um pacote.o

var smallBox:Box = new Box(10,20);

Flash Builder

O Adobe Flash Builder a principal ferramenta para criar projetos com a estrutura Flex ou projetos que consistem, principalmente, de cdigo do ActionScript. O Flash Builder tambm inclui um editor de ActionScript cheio de recursos, bem como recursos de layout visual e edio de MXML. Ele pode ser usado para criar projetos Flex ou apenas do ActionScript. O Flex fornece vrias vantagens, incluindo um rico conjunto de controles pr-criados da interface do usurio, controles flexveis de layout dinmico e mecanismos embutidos para trabalhar com dados remotos e vincular dados externos a elementos da interface do usurio. No entanto, devido ao cdigo adicional necessrio para fornecer esses recursos, os projetos que usam Flex podem ter um tamanho de arquivo SWF maior do que suas contrapartes no-Flex. Use o Flash Builder se voc estiver criando aplicativos orientados a dados e cheios de recursos para a Internet com o Flex. Use-o quando desejar editar cdigo de ActionScript, editar cdigo MXML e dispor visuamente o seu aplicativo, tudo dentro da mesma ferramenta. Muitos usurios do Flash Professional que criam projetos que usam muito o ActionScript utilizam o Flash Professional para criar ativos visuais e o Flash Builder como editor para o cdigo do ActionScript.

A

R

IM

Voc pode usar uma de vrias ferramentas (ou vrias ferramentas juntas) para gravar e editar seu cdigo do ActionScript.

A25

Escolha da ferramenta correta

T

Na primeira vez em que o compilador se deparar com a referncia classe Box, ele pesquisa o cdigo de origem disponvel para localizar a definio da classe Box.

E IA

Escreva o cdigo que usa especificamente o nome da classe. Por exemplo, declare uma varivel tendo essa classe como seu tipo de dados e crie uma ocorrncia da classe para armazenar na varivel. Usando uma classe no cdigo do ActionScript, voc instrui o compilador a carregar a definio dessa classe. Por exemplo, dada uma classe externa chamada Box, essa declarao cria uma ocorrncia da classe Box:

Flash Professional Alm dos recursos grficos e da criao de animao, o Flash Professional inclui ferramentas para trabalhar com o cdigo do ActionScript. O cdigo pode ser vinculado aos elementos em um arquivo FLA ou nos arquivos externos somente para ActionScript. O Flash Professional ideal para projetos que envolvem animao ou vdeo significativo. Trata-se de algo valioso quando voc deseja criar voc mesmo a maioria dos ativos grficos. Outra razo pra usar o Flash Professional para desenvolver seu projeto em ActionScript criar ativos visuais e escrever cdigo no mesmo aplicativo. O Flash Professional tambm inclui componentes pr-criados da interface do usurio. Voc pode usar esses componentes para obter arquivos SWF menores e usar as ferramentas visuais para projet-os para o seu projeto. O Flash Professional inclui duas ferramentas para escrever cdigos do ActionScript:

Editor do ActionScript de terceiros

Voc prefer escrever cdigo do ActionScript em um programa separado e projetar os elementos visuais no Flash Professional. Voc usa um aplicativo para programao que no do ActionScript (como criao de pginas HTML ou de aplicativos em outra linguagem de programao). Voc deseja usar o mesmo aplicativo para o cdigo do ActionScript tambm. Voc quer criar projetos do Flex ou somente ActionScript usando o Flex SDK sem o Flash Professional ou o Flash Builder.

Alguns dos notveis editores de cdigo que fornecem suporte especfico ao ActionScript incluem:

A

Adobe Dreamweaver CS4 ASDT FDT FlashDevelop PrimalScript SE|PY

R

Entre as razes para escolher um editor de ActionScript de outra empresa esto:

IM

Como os arquivos do ActionScript (.as) so armazenados como arquivos de texto simples, qualquer programa que consegue editar arquivos de texto sem formatao pode ser usado para escrever arquivos do ActionScript. Alm dos produtos do ActionScript da Adobe, foram criados diversos programas de edio de texto de terceiros com recursos especficos do ActionScript. Voc pode escrever um arquivo MXML ou classes do ActionScript usando qualquer programa de editor de texto. Voc pode ento criar um aplicativo desses arquivos usando o Flex SDK. O projeto pode usar o Flex ou ser um aplicativo apenas do ActionScript. Como alternativa, alguns desenvolvedores usam o Flash Builder ou um editor de ActionScript de outra empresa para escrever classes do ActionScript, em combinao com o Flash Professional para criar contedo grfico.

A26

T

E IA

Painel Aes: disponvel para trabalhar em um arquivo FLA, este painel permite escrever cdigo do ActionScript anexado a quadros em uma linha de tempo. Janela Script: a janela Script um editor de texto dedicado para trabalhar com arquivos de cdigo do ActionScript (.as).

TextMate (com Pacotes do ActionScript e Flex)

O processo de desenvolvimento do ActionScriptNo importando se o seu projeto do ActionScript grande ou pequeno, usar um processo para projetar e desenvolver seu aplicativo torna o trabalho mais eficiente e eficaz. As etapas a seguir descrevem um processo de desenvolvimento bsico para criar um aplicativo que usa o ActionScript 3.0: 1. Crie seu aplicativo. Descreva seu aplicativo de alguma forma antes de comear a cri-lo. 2. Componha o cdigo do ActionScript 3.0.

3. Crie um projeto do Flash ou Flex para executar o cdigo.

4. Publique e teste o aplicativo do ActionScript.

Criao de suas prprias classesO processo de criar as classes que sero usadas nos projetos pode parecer assustador. Entretanto, a parte mais difcil da criao de uma classe a tarefa de projetar os mtodos, as propriedades e os eventos da classe.

Estratgias para criar uma classeO tpico de criao orientada a objetos complexo; existem cargos totalmente dedicados ao estudo acadmico e prtica profissional dessa disciplina. No entanto, apresentamos algumas sugestes de abordagens que podem ajud-lo a comear.

A

No preciso seguir essas etapas na ordem nem concluir uma etapa completamente antes de comear outra. Por exemplo, voc pode criar uma tela do aplicativo (etapa 1) e imagens grficas, botes, etc. (etapa 3), antes de escrever cdigo do ActionScript (etapa 2) e testar (etapa 4). Ou voc pode criar parte disso e depois adicionar um boto ou um elemento da interface por vez, escrevendo o ActionScript para cada um e testando-o durante a criao. til lembrar esses quatro estgios do processo de desenvolvimento. No entanto, no desenvolvimento real, mais eficaz avanar e voltar nos estgios conforme apropriado.

R

IM

Testar seu aplicativo envolve a execuo do seu aplicativo de dentro do ambiente de desenvolvimento e ter a certeza de que ele faz tudo o que voc queria.

A27

T

No Flash Professional, crie um arquivo FLA, defina as configuraes de publicao, acrescente ao aplicativo os componentes da interface do usurio e faa referncia ao cdigo do ActionScript. No Flex, defina o aplicativo, acrescente os componentes da interface do usurio usando MXML e faa referncia ao cdigo do ActionScript.

E IA

Voc pode criar cdigo do ActionScript usando o Flash Professional, Flash Builder, Dreamweaver ou um editor de texto.

1. Pense na funo que as ocorrncias dessa classe exercem no aplicativo. Em geral, os objetos cumprem uma destas trs funes: o Objeto Value: esses objetos servem principalmente como contineres de dados. Provavelmente, tm vrias propriedades e menos mtodos (ou s vezes nenhum mtodo). Em geral, so representaes de cdigo de itens claramente definidos. Por exemplo, um aplicativo de reproduo de msica poderia incluir uma classe Song, que representa uma nica cano real, e uma classe Playlist, que representa um grupo conceitual de msicas. o Objeto de exibio: so os objetos que realmente aparecem na tela. Entre os exemplos esto elementos da interface do usurio como uma lista suspensa ou exibio de status, elementos grficos como criaturas em um videogame, e assim por diante. o Estrutura do aplicativo: esses objetos exercem uma ampla gama de funes de suporte na lgica ou no processamento executados pelos aplicativos. Por exemplo, voc pode fazer um objeto realizar certos clculos em uma simulao de biologia. Voc pode criar um que seja responsvel por sincronizar os valores entre o controle de dial e a leitura de volume no aplicativo de reproduo de msica. Outro pode administrar as regras em um video game. Ou voc pode fazer uma classe para carregar uma imagem salva em um aplicativo de desenho. 2. Escolha a funcionalidade especfica de que a classe precisa. Os diferentes tipos de funcionalidade, em geral, se tornam mtodos da classe. 3. Se a classe for servir como um objeto de valor, decida quais dados as ocorrncias incluem. Esses itens so bons candidatos para propriedades. 4. Como a classe est sendo criada especificamente para seu projeto, o mais importante fornecer a funcionalidade de que o aplicativo precisa. Tente responder a estas perguntas: o Que informaes o aplicativo est armazenando, controlando e manipulando? Responder a esta pergunta ajuda-o a identificar os objetos e as propriedades de valor de que voc precisa. o Que conjuntos de aes o aplicativo realiza? Por exemplo, o que acontece quando o aplicativo carregado, quando se clica em um boto em particular, quando um filme para de ser reproduzido e assim por diante? Esses itens so bons candidatos para mtodos. Eles tambm podem ser propriedade se as "aes" envolverem a alterao de valores individuais. o Para qualquer ao determinada, que informaes so necessrias para realizar essa ao? Essas informaes se tornam os parmetros do mtodo. o medida que o aplicativo executa seu trabalho, o que muda na sua classe que outras partes do aplicativo devem saber? Esses itens so bons candidatos para eventos. 5. H um objeto atual que seja semelhante ao objeto de que voc precisa, com a diferena de que est faltando alguma funcionalidade que voc deseja acrescentar? Pense em criar uma subclasse. (A subclasse uma classe que se baseia na funcionalidade de uma classe j existente, e no na definio de toda sua prpria funcionalidade.) Por exemplo, para criar uma classe que seja um objeto visual na tela, use o comportamento de um objeto existente de exibio como base para sua classe. Nesse caso, o objeto de exibio (como MovieClip ou Sprite) seria a classe base, e sua classe estenderia essa classe.

Escrita do cdigo para uma classe

A

R

IM

A28

T

E IA

Depois de ter um projeto para sua classe, ou pelo menos alguma ideia de quais informaes ele armazena e que aes realiza, a sintaxe real de escrever uma classe bastante direta. Veja as etapas mnimas para criar sua prpria classe do ActionScript: 1. Abra um novo documento de texto no seu programa de edio de texto do ActionScript. 2. Insira uma instruo class para definir o nome da classe. Para acrescentar uma instruo class, insira as palavras public class e depois o nome da classe. Acrescente as chaves de abertura e fechamento para abranger o contedo da classe (as definies de mtodo e propriedade). Por exemplo:public class MyClass { }

A palavra public indica que a classe pode ser acessada de qualquer outro cdigo. Para obter alternativas, consulte Atributos de espao para nomes de controle de acesso. 3. Digite uma instruo package para indicar o nome do pacote que contm sua classe. A sintaxe a palavra package, seguida pelo nome completo do pacote, seguido pelas chaves de abertura e fechamento ao redor do bloco de instruo class. Por exemplo, troque o cdigo na etapa anterior para o seguinte:package mypackage { public class MyClass { } }

public var textProperty:String = "some default value"; public var numericProperty:Number = 17; public var dateProperty:Date;

Defina cada mtodo na classe usando a mesma sintaxe usada para definir uma funo. Por exemplo: Para criar um mtodo myMethod(), digite:public function myMethod(param1:String, param2:Number):void { // do something with parameters }

A

Defina cada propriedade na classe usando a instruo var dentro do corpo da classe. A sintaxe a mesma usada para declarar qualquer varivel (com a adio do modificador public). Por exemplo, a incluso destas linhas entre as chaves de abertura e fechamento da definio da classe cria propriedades chamadas textProperty, numericProperty e dateProperty:

R

IM

A29

T

E IA

Para criar um construtor (o mtodo especial que chamado como parte do processo de criar uma ocorrncia de uma classe), crie um mtodo cujo nome corresponda exatamente ao nome da classe:public function MyClass() { // do stuff to set initial values for properties // and otherwise set up the object textVariable = "Hello there!"; dateVariable = new Date(2001, 5, 11); }

Se voc no incluir um mtodo constructor em sua classe, o compilador cria automaticamente um construtor vazio em sua classe. (Em outras palavras, um construtor sem parmetros e sem instrues.) H alguns outros elementos de classe que voc pode definir. Esses elementos so mais complexos. Os assessores so um cruzamento especial entre um mtodo e uma propriedade. Durante a escrita do cdigo para definir a classe, voc escreve o assessor como um mtodo. Voc pode realizar vrias aes em vez de apenas ler ou atribuir um valor, que tudo o que voc pode fazer ao definir uma propriedade. Entretanto, na criao de uma ocorrncia da classe, voc trata o assessor como uma propriedade e use apenas o nome para ler ou atribuir o valor. Os eventos no ActionScript no so definidos usando uma sintaxe especfica. Em vez disso, voc define os eventos em sua classe usando a funcionalidade da classe EventDispatcher.

Exemplo: Criao de um aplicativo bsico

Este exemplo apresenta as etapas de criao e de aprimoramento de um aplicativo ActionScript 3.0 simples usando o Flash Professional ou Flash Builder. O aplicativo que voc criar apresentar um padro simples para usar arquivos externos de classe do ActionScript 3.0 no Flash Professional e Flex.

Criao do seu aplicativo do ActionScriptEsse exemplo de aplicativo ActionScript um aplicativo padro do tipo "Hello World", por isso seu design simples: O aplicativo chamado de HelloWorld. Ele exibe um nico campo de texto contendo as palavras Hello World!.

A

R

O ActionScript 3.0 pode ser usado em uma srie de ambientes de desenvolvimento de aplicativos, incluindo as ferramentas Flash Professional e Flash Builder ou qualquer editor de texto.

IM

A30

T

E IA

O aplicativo usa uma classe nica orientada a objetos chamadas Greeter. Esse projeto permite que a classe seja usada de dentro de um projeto do Flash Professional ou Flex. Neste exemplo, voc primeiro cria uma verso bsica do aplicativo. Em seguida, voc aumenta a funcionalidade para fazer com que o usurio insira um nome de usurio e o aplicativo verifique o nome em uma lista de usurios conhecidos. Com essa definio concisa estabelecida, voc pode comear a criar o aplicativo em si.

Criao do projeto HelloWorld e da classe GreeterA instruo do design para o aplicativo Hello World diz que seu cdigo fcil de reutilizar. Para atingir esse objetivo, o aplicativo usa uma nica classe orientada a objetos chamadas Greeter. Voc usa essa classe de dentro de um aplicativo que voc cria no Flash Builder ou no Flash Professional. Para criar o projeto HelloWorld e a classe Greeter no Flex: No Flash Builder, selecione File > New> Flex Project.

Agora, para criar um arquivo de classe do ActionScript personalizado no Flash Builder, selecione Arquivo > Novo > Classe ActionScript.

Para criar a classe Greeter no Flash Professional: No Flash Professional, selecione File > New. Na caixa de dilogo Novo documento, selecione Arquivo ActionScript e clique em OK. Uma nova janela de edio do ActionScript ser exibida. Selecione Arquivo > Salvar. Selecione uma pasta para conter o aplicativo, chame o arquivo do ActionScript de Greeter.as e clique em OK. Continue com Adio de cdigo classe Greeter.

A

Uma nova janela de edio do ActionScript ser exibida. Continue com Adio de cdigo classe Greeter.

R

Na caixa de dilogo New ActionScript Class, no campo Name, digite Greeter para o nome da classe e, em seguida, clique em Finish.

IM

O Flash Builder cria seu projeto e o exige no Package Explorer. Por padro, o projeto j contm um arquivo chamado HelloWorld.mxml, e esse arquivo aberto no painel Editor.

A31

T

Digite HelloWorld como o nome do projeto. Certifique-se de que o tipo de aplicativo esteja definido como Web ( executado no Adobe Flash Player) e depois clique em Concluir.

E IA

Adio de cdigo classe GreeterA classe Greeter define um objeto, Greeter, que voc usa no aplicativo HelloWorld. Para adicionar cdigo classe Greeter: Digite o seguinte cdigo no novo arquivo (parte do cdigo pode j ter sido adicionada):package { public class Greeter { public function sayHello():String { var greeting:String; greeting = "Hello World!"; return greeting; } } }

A classe Greeter inclui um nico mtodo sayHello() , que retorna uma seqncia de caracteres que diz Hello World!.

A classe Greeter agora est pronta para ser usada em um aplicativo.

Para criar um aplicativo do ActionScript usando o Flash Professional: Selecione Arquivo > Novo. Na caixa de dilogo Novo documento, selecione Arquivo Flash (ActionScript 3.0) e clique em OK. exibida uma nova janela de documento. Selecione Arquivo > Salvar. Selecione uma pasta que contenha o arquivo de classe Greeter.as, chame o documento Flash de HelloWorld.fla e clique em OK.

A

O cdigo precisa de uma ocorrncia da classe Greeter. Veja como usar a classe Greeter ao seu aplicativo.

R

A classe Greeter que voc criou define um conjunto independente de funes de software, mas no representa um aplicativo completo. Para usar a classe, voc crie um documento do Flash Professional ou um projeto do Flex.

IM

Criao de um aplicativo que usa o cdigo do ActionScript

A32

T

Clique em Arquivo > Salvar para salvar esse arquivo do ActionScript.

E IA

Na paleta de ferramentas do Flash Professional, selecione a ferramenta Text. Arraste no Palco para definir um novo campo de texto com aproximadamente 300 pixels de largura e 100 pixels de altura. No painel Propriedades, com o campo de texto ainda selecionado no Palco, defina o tipo de texto como "Texto dinmico". Digite mainText como o nome de ocorrncia do campo de texto. Clique no primeiro quadro da linha de tempo principal. Abra o painel Aes escolhendo Janela > Aes. No painel Aes, digite o seguinte script:var myGreeter:Greeter = new Greeter(); mainText.text = myGreeter.sayHello();

Continue com Publicao e teste do aplicativo do ActionScript.

Para criar um aplicativo do ActionScript usando o Flash Builder:

public function initApp():void { // says hello at the start, and asks for the user's name mainTxt.text = myGreeter.sayHello(); } ]]>

A

Este projeto do Flex inclui quatro tags MXML: Uma tag , que define o continer Application

R

width="100%"

enter="mainTxt.text

=

O arquivo HelloWorld.mxml file se parece com o seguinte:

R

IM

A

Twidth="100%" enter="mainTxt.text =

38

E IA

O atributo enter define o que acontece quando o usurio pressiona a tecla Enter no campo userNameTxt. Neste exemplo, o cdigo passa o texto no campo para o mtodo Greeter.sayHello(). A saudao no campo mainTxt muda da forma correspondente.

Salve o arquivo HelloWorld.mxml editado. Selecione Executar > Executar HelloWorld para executar o aplicativo. Quando voc executa o aplicativo, o aplicativo lhe pede para inserir um nome de usurio. Se for vlido (Sammy, Frank ou Dean), o aplicativo exibir a mensagem de confirmao "Hello, userName.

Linguagem e sintaxe do ActionScriptViso geral da linguagemOs objetos so a base da linguagem do ActionScript 3.0, seus os blocos de construo fundamentais. Cada varivel declarada, cada funo escrita e cada ocorrncia de classe criada um objeto. Pense em um programa do ActionScript 3.0 como um grupo de objetos que realizam tarefas, respondem a eventos e se comunicam. Os programadores acostumados OOP (Programao orientada a objetos) em Java ou C++ podem pensar nos objetos como mdulos que contm dois tipos de membros: dados armazenados em variveis ou propriedades de membros e comportamento acessvel por meio de mtodos. O ActionScript 3.0 define objetos de modo