Anda di halaman 1dari 81

Flash AS3 bsico

Desenvolvida exclusivamente para o Apostilando.com por Marcos Paulo Furlan

NDICE
NDICE .......................................................................................................................................... 2 INTRODUO AO ACTIONSCRIPT............................................................................................ 3

A interface do Flash ........................................................................................ 3


O PAINEL ACTIONS .................................................................................................................... 5 ACTIONSCRIPT 3 ........................................................................................................................ 7

Iniciando o AS3 no Flash ................................................................................ 8 Variveis ....................................................................................................... 12 Funes ........................................................................................................ 13 Propriedades ................................................................................................ 15 Mtodos ........................................................................................................ 18 Explorando a dot syntax ............................................................................... 27
URLS E HIPERLINKS ................................................................................................................ 33 ORIENTAO A OBJETOS COM AS3 ..................................................................................... 34

Conceitos .................................................................................................. 35 Pacotes ..................................................................................................... 35 Classes ..................................................................................................... 40 Propriedades da Classe ............................................................................ 43 Mtodos .................................................................................................... 46 Mtodo de Construtor................................................................................ 48 Encapsulamento ....................................................................................... 50 Operadores ................................................................................................... 50 Loops ........................................................................................................ 54
CARREGAMENTO DE ARQUIVOS SWF EXTERNOS ............................................................. 56

Display Object............................................................................................... 57
COMPONENTE LIGHTBOX ....................................................................................................... 60

Galeria de fotos com XML ............................................................................ 66


FLASH MOBILE.......................................................................................................................... 72

INTRODUO AO ACTIONSCRIPT
O objetivo dessa apostila ensinar alguns dos recursos avanados do Flash. Quando se fala em alguns, pode-se pensar que sero vistos recursos de forma superficial, mas com certeza esse no ser o caso. O Flash vem atravs de suas verses se aprimorando cada vez mais como ferramenta de criao e desenvolvimento para web e aplicaes ricas. A partir da verso CS3, trouxe junto com ela um amadurecimento de sua linguagem de programao o ACTIONSCRIPT para a verso 3 que est estruturada como uma linguagem madura e utilizando recursos que somente eram comuns a linguagens como JAVA, C E C#. Em nossa apostila vamos estudar o flash de forma programvel utilizando o actionscript 3.

A interface do Flash
Ao iniciarmos o Flash ele vai apresentar uma tela com as opes que podemos trabalhar com o Flash. Na coluna da esquerda temos os arquivos criados mais recentemente. NA coluna do meio podemos criar um novo arquivo do Flash. Aqui nessa coluna temos a primeira grande mudana, podemos comear nosso projeto focando em actionscript3, ou actionscript2. Na coluna da direita temos alguns modelos de projeto de arquivos Flash. Isto pode mudar um pouco de verso para verso, em nosso curso trabalharemos com as verses CS4 e CS5, mas quem utiliza a verso CS3, conseguira reproduzir todos os exemplos facilmente. Para quem ainda utiliza a verso 2004 e 8, no ser possvel reproduzir os exemplos de actionScript 3.

Tela de abertura CS3

Tela de abertura CS4

Tela de abertura CS5

Action Script a linguagem de programao utilizada no Flash e que possibilita que voc possa adicionar interatividade complexa, controle de execuo e exibio de dados num documento Flash.

O PAINEL ACTIONS
Para podermos aplicar os cdigos action Script em nosso projeto necessrio utilizarmos o painel actions. Voc pode chamar o painel actions atravs do menu, window actions, ou atravs da tecla de atalho F9 opo recomendada.

O painel Actions divide-se em duas partes, na esquerda temos uma biblioteca de aes. Voc pode observar que no topo temos o nvel de action script que estamos utilizando e na direita temos a janela de cdigo. Na parte superior da parte direita do painel de aes temos alguns botes, vamos ver os principais: Permite adicionar aes de acordo com a sua necessidade.

Permite localizar uma palavra dentro do cdigo Insert a target path Permite adicionar ao cdigo um objeto ou varivel criada.

Verificador de sintaxe verifica se existe algum erro de sintaxe do cdigo. Caso ocorra algum erro ele dar um erro e o mesmo ser mostrado na barra Compiler erros no rodap do Flash

um habito correto, ao se desenvolver qualquer cdigo sempre trabalhar com endentao de nveis, deixando assim o cdigo mais organizado, mas cs voc no o tenha feito durante a digitao dos cdigos, voc pode usar esse boto para reorganizar o cdigo para voc. Permitem adicionar comentrios de bloco (/* texto do comentrio */), comentrio de linha (// texto do comentrio) e remover os comentrios. Todos os nossos cdigos tero comentrios. Esse um bom costume de ser ter ao criar seus cdigos, pois torna fcil o entendimento do que se est fazendo. Esse boto liga / desliga o assistente de cdigo do Flash. Em nosso curso vamos trabalhar com ele praticamente desligado. Vamos ns mesmos digitar os nossos cdigos.

ACTIONSCRIPT 3
Uma das principais diferenas entre o Actionscript 3.0 e as verses anteriores, que antes existiam diversas opes de onde colocar os cdigos - por exemplo: timelines, movieclips, botes, arquivos de Actionscript externo e classes. Enquanto que o Actionscript 3.0 totalmente baseado em classes, onde os cdigos so colocados em mtodos (funes) da classe. Nesta verso foram introduzidos novos recursos: Verificao de tipos em tempo de compilao e de execuo: os tipos so agora preservados em tempo de execuo. O Flash Player faz verificao de tipos no momento da execuo. Estas informaes de tipo tambm so utilizadas na mquina virtual para melhorar desempenho e

reduzir uso de memria. Excees em tempo de execuo: Erros em tempo de execuo disponibilizam estado da pilha ("stack traces") com indicao de arquivo fonte e nmero de linhas, como em java, para rpida identificao de onde o erro foi gerado. Separao do sistema de herana de classes do sistema de herana de prototipao utilizado na verso anterior: Vrios recursos que antes eram disponibilizados por funes de biblioteca foram includos na linguagem. Classes seladas: o comportamento padro que as classes no podem ser estendidas em tempo de execuo, melhorando a alocao de memria e mantendo a aplicao mais segura. Classes dinmicas podem ser utilizadas se definidas com o modificador dynamic. Suporte a pacotes (package), como em Java, namespaces. Mtodos com Closure: as closures nos mtodos guardam o estado dos objetos da qual originaram. A API do flash player foi reorganizada em packages Sistema unificado de tratamento de eventos baseado no Document Object Model. Integrao do ECMAScript para XML (chamada E4X). A antiga API, da verso 2.0, ainda existente. Acesso direto lista de componentes do Flash em tempo de execuo, permitindo controle completo em ActionScript. Implementao da especificao do ECMAScript (quarta edio). Expresses regulares: suporte nativo expresses regulares. Novos tipos primitivos numricos: int (com sinal) e uint (sem sinal), ambos com 32 bits.

Iniciando o AS3 no Flash


O primeiro cuidado ao se trabalhar com AS3 no Flash ao abrir um projeto, escolher a opo Flash File (ActionScript 3).

No possvel no mesmo arquivo Flash trabalhar com AS2 e AS3. Vamos a um exemplo inicial bsico. Insira um objeto qualquer no palco de seu filme. Crie uma nova camada e nomeie-a como AS.

Clique no primeiro frame da camada AS e pressione F9 para chamar o painel de aes. Na esquerda do painel de aes, j possvel observar que a quantidade de opes aumentou e muito em relao ao AS2.

ActionsScript 2

10

ActionScript 3 Vamos ento testar nosso primeiro AS3. Para no perder o costume adicione a seguinte action: Trace(Ol Mundo!); Lembrando sempre que por se tratar de um string dentro do trace coloque-a entre aspas, caso contrrio ser apresentada uma tela de erro. Depois pressione CTRL+ENTER e observe a janela de output.

Caso queira colocar comentrios em seus cdigos pode seguir a mesma lgica do As. //comentrio de uma linha /* comentrio de bloco Utilize este comentrio quando o mesmo for longo*/

11

Variveis
Uma varivel um objeto capaz de reter e representar um valor ou expresso. Enquanto as variveis s existem em tempo de execuo, elas so associadas a nomes chamados identificadores, durante o tempo de desenvolvimento. As variveis primitivas so: String, Number, int, uint, Boolean, void e Undefined. As variaveis complexas so: Array, Date, Error, Function, RegExp, XML e XMLList. No AS2 , muitas vezes no era necessrio dizer ao Flash que tipo de varivel estvamos usando, esta passa a ser uma obrigao no AS3 Ao digitar a chamada var, definir o nome da mesma e pressionar dois pontos(:), o Flash j trs todas as possveis opes de preenchimento

Vamos definir a primeira varivel como um String var boneco:String=Flash. Depois adicione outras variveis como no exemplo abaixo

12

Funes
Funo basicamente um cdigo usado para uma srie de execues. Aproveitando do exemplo anterior monte a seguinte funo:

function bonequinho (){ //cria a varivel do tipo Number e faz o calculo var carga:Number=(calculo+calculo); //testa a funo trace(carga); } //chama a funo bonequinho() Observe que foi necessrio aps o fechamento das chaves chamar a funo. Podemos tambm fazer nossos clculos na chamada da funo. Veja o exemplo:

13

//criando a funo e atribuindo argumentos function calcular(item1,item2){ var somar:Number=item1+item2; trace(somar); } calcular(4,5) calcular(6,8) calcular(calculo,calculo) Outra forma de se mostrar os valores de uma funo seria;

//criando a funo e atribuindo argumentos function calcular(item1,item2){ var somar:Number=item1+item2; return somar; } trace(calcular(4,5)); trace(calcular(6,8)); trace(calcular(calculo,calculo));

Eu posso forar a funo a somente trabalhar com um tipo de argumento. Adicione a sua funo o seguinte.

14

Propriedades
Atravs das propriedades, podemos alterar, as dimenses, visibilidade, posicionamento de nossos objetos. Inicie um novo arquivo Flash e importe alguns elementos dentro do palco na camada principal, renomeie a camada para objetos, depois crie uma nova camada chamada AS. Converta seus objetos para Movie Clips e instancie-os.

Acrescente as seguintes aes.

15

Observe que no AS2, para atribuir as propriedades a um objeto, usava-se um underline: _width. No AS3 no mais utilizado. Para o CS5 vamos criar uma funo que modifica suas propriedades.

16

Pode-se alterar tambm o fade de vrios objetos de uma nica vez.

Observe que na funo foi definido o argumento fade do tipo Number, e como

17

ele no possui um valor, atribui-se :void ao final, isto permite o retorno vazio da funo.

Mtodos
Mtodos so funes que fazem parte de uma definio de classe. Depois que uma ocorrncia da classe criada, um mtodo ligado a essa ocorrncia. Ao contrrio de uma funo declarada fora de uma classe, um mtodo no pode ser usado parte da ocorrncia qual ele est anexado. Os mtodos so definidos usando a palavra-chave function. Assim como em qualquer propriedade de classe, voc pode aplicar atributos de propriedade de classe a mtodos, incluindo um espao para nome privado, protegido, pblico, interno, esttico ou personalizado.

Inicie um novo arquivo AS3. Crie uma camada AS e nomeie uma camada objetos. Na camada objetos adicione uma imagem, trs botes e uma animao qualquer.

18

Instancie os elementos de seu filme. A animao quadrado_mc para a imagem ser boneco_mc, os botes sero verde_btn, cinza_btn e red_btn. Se voc chamar o painel de aes e depois ir at flash.display, Movie Clip abrir

19

Methods, voc ter as seguintes opes:

Vamos usar um mtodo que j existia no AS 2 o gotoAndStop. No seu painel de aes adicione. quadrado_mc.gotoAndStop(20); Ao pressionar CTRL+ENTER, ele vai rodar a animao at o quadro 20 e para a mesma. Vamos acrescentar aes aos nossos botes, pelo painel de aes as possibilidade de aes nos botes esto mais abaixo na categoria Simples Button.

20

Vamos adicionar aes em nossos botes, para isso no painel de actions, abra a pastinha events.

Ento no painel de aes adicione: //cria a funo para clicar no boto e cria a varivel do tipo Evento //adicione void para no haver retorno function clicar(evt:Event):void{ trace("o boto verde foi clicado")

} At o momento ela no faz nada, preciso acrescentar o mtodo addEventListener.

21

Desta forma vai aparecer no painel output a frase dentro de sua funo. Caso queira mudar a funo para que seja possvel detectar qual boto foi clicado. Mude a funo da seguinte forma:

22

O cdigo fica da seguinte forma: //cria a funo para clicar no boto e cria a varivel do tipo Evento //adicione void para no haver retorno function clicar(evt:Event):void{ trace("o boto "+evt.target.name +" foi clicado") } //Adicionando o Mtodo addEventListener //Adicionado o evento MouseEvent //O seu mtodo CLICK //e a funo a ser chamada "clicar" verde_btn.addEventListener(MouseEvent.CLICK,clicar); cinza_btn.addEventListener(MouseEvent.CLICK,clicar); red_btn.addEventListener(MouseEvent.CLICK,clicar);

Vamos adicionar ao nosso cdigo uma nova funo para que o boto verde controle a animao dos quadrados.

23

Vamos acrescentar que ao clicar no boto cinza ele diminua a dimenso da imagem.

//funo para mudar as dimenses da imagem function imagem(evt:Event):void{ //faz com a dimenso de boneco diminua em 10% em cada clique boneco_mc.scaleX=boneco_mc.scaleX-.1; boneco_mc.scaleY=boneco_mc.scaleY-.1; } //Evento no clique do boto cinza_btn.addEventListener(MouseEvent.CLICK,imagem);

Vamos trabalhar agora com textos dentro deste nosso exemplo. As opes de scripts para textos esto em flash.text .

24

Vamos ento criar uma caixa de texto dinmico e instanciar ela como texto_txt.

Vamos acrescentar ento uma ao ao boto vermelho para escrever dentro de nossa caixa de texto. Primeiro cria funo que permite escrever dentro da caixa de texto. //cria a funo para escrever dentro da caixa de texto function caixatxt(evt:Event):void{ //escrevendo na caixa de texto. texto_txt.text="Adobe Master Suite CS5"; }

25

Vamos acrescentar mais uma linha onde ele redimensione a caixa de texto conforme o contedo a ser adicionado. Este recurso a propriedade autoSize.

Se voc clicar na propriedade e no canto superior direito do painel de aes clicar no ponto de interrogao, abre-se a janela de ajuda do Flash, mostrando a utilizao da ao.

Vamos usar a propriedade Ela aumenta a dimenso da caixa a partir da esquerda. //cria a funo para escrever dentro da caixa de texto

26

function caixatxt(evt:Event):void{ //escrevendo na caixa de texto. texto_txt.text="Adobe Master Suite CS5"; //Ajustando o tamanho da caixa de texto conforme o contedo texto_txt.autoSize=TextFieldAutoSize.LEFT; } Para finalizar, abaixo de nossa funo, vamos fazer a chamada para o boto. //escrevendo na caixa de texto red_btn.addEventListener(MouseEvent.CLICK,caixatxt);

Explorando a dot syntax


No ActionScript, voc usa um ponto ( . ) operador (sintaxe de ponto) para acessar propriedades ou mtodos que pertencem a um objeto ou uma instncia no Palco. Voc tambm pode usar o operador ponto para identificar o caminho de destino para uma instncia (por exemplo, um clipe de filme), varivel, funo ou objeto. Abra o arquivo relgio.fla que est dentro de nosso DVD. Nossos botes j esto instanciados como play_btn e stop_btn, o retngulo de cima est instanciado como painel_mc e o debaixo como painelbx_btn Crie uma camada de aes em seu filme. No primeiro frame desta camada adicione uma ao stop(); para que o filme fique parado no primeiro frame. O boto, Inicio como o prprio nome diz tem como objetivo que ao ser clicado inicie o relgio. Ento na sua camada de aes coloque o seguinte:

27

Isso faz com que ao ser clicado o boto inicio dispara a Timeline. Processo simples, mas extremamente importante. Vamos adicionar tambm a funo para parar a Timeline.

A funo semelhante, mas ao invs de play(), usa-se stop(), necessrio tambm mudar o nome da funo a ser criada e colocar este nome na chamada da funo. Abra a bilioteca de smbolos e observe que ali temos um smbolo chamado relgios. Arraste uma instncia dele para o palco na camada relgios.

Instancie ele como nvrelogio_mc A ao que fizemos da um play na Timeline. Vamos adicionar as funes existentes uma ao que de play e stop no relgio que um Movie Clip. Vamos alterar nossas aes da seguinte forma.

28

Para parar o processo muito semelhante

Pela biblioteca de smbolos, arraste o boto reiniciar para o palco na camada de botes. Instancie ele como reiniciar_btn. O objetivo deste boto que ele volte ao primeiro frame da Timeline e do MC relgio e pare.

Adicione a seguinte ao:

Como o objetivo deste captulo trabalhar a sintaxe de pontos, d um duplo clique no painel de baixo, na camada clock adicione mais uma instncia do MC relgios e diminua seu tamanho para ficar dentro do retngulo. Instancie ele tambm com o nome de nvrelogio_mc.

29

Ao testar o filme e clicar nos botes de iniciar, parar e reiniciar, este relgio mesmo tendo o mesmo nome de instncia que a verso maior no obedece aos comandos. Isto ocorre porque ele embora tenha o mesmo nome de instncia. Para que ele receba os comandos preciso dizer ao Flash qual o caminho do MC. Ento este nvrelogio_mc est dentro do Movie Clip painelbx_mc, ser necessrio mostrar este caminho ao Flash. Ento vamos alterar nossas aes da seguinte forma.

30

Selecione os trs botes na timeline principal, recorte-os, de um duplo clique no MC painel e cole-os dentro deixando conforma a imagem.

Ser necessrio ento alterar o cdigo actionscript, pois agora os botes esto dentro de um Movie clip.

31

Ser necessrio repetir o mesmo comando para as demais funes. O cdigo completo ficou da seguinte forma. stop(); //cria funo para iniciar o relgio function iniciar(evt:Event):void{ play(); //inicia o movimento no MC relogio nvrelogio_mc.play(); //inicia o MC que esta dentro do MC painelbx_mc painelbx_mc.nvrelogio_mc.play(); } //adiciona funo ao boto play_btn painel_mc.play_btn.addEventListener(MouseEvent.CLICK,iniciar);

//cria funo para parar o relgio function parar(evt:Event):void{ stop(); //para o movimento do MC relgio nvrelogio_mc.stop(); //inicia o MC que esta dentro do MC painelbx_mc painelbx_mc.nvrelogio_mc.stop(); } //adiciona funo ao boto play_btn painel_mc.stop_btn.addEventListener(MouseEvent.CLICK,parar);

32

//cria funo para reiniciar a animao parada function reiniciar(evt:Event):void{ //retorna ao frame da timeline principal gotoAndStop(1); //retorna ao frame do MC nvrelogio_mc.gotoAndStop(1); //reinicia o MC que esta dentro do MC painelbx_mc painelbx_mc.nvrelogio_mc.gotoAndStop(1); } //adiciona a funo reiniciar ao boto painel_mc.reiniciar_btn.addEventListener(MouseEvent.CLICK,reiniciar);

URLS E HIPERLINKS
Uma das maiores mudanas em relao ao acrionscript 2 foi como chamar uma URL. No As2 bastava getURL(http://www.apostilando.com,);. Agora no AS3 a coisa ficou um pouco mais complicada. Ficaria da seguinte forma: Em um novo filme do Flash com AS3, crie um Movie Clip e o instancie como botao_mc. Depois crie uma nova camada de aes e adicione o seguinte cdigo: //cria o evento de clicar no boto e chama a funo botao_mc.addEventListener(MouseEvent.CLICK, minhaURL); //cria a funo function minhaURL(event: MouseEvent) { //cria a varivel de requisio da URL e define o link var request:URLRequest = new

URLRequest("http://www.apostilando.com"); // como deve ser a navegao navigateToURL(request,"_blank"); } Caso voc queira abrir a URL durante a navegao pela Timeline, voc pode usar:

33

//importa as classes de navegao import flash.net.URLRequest; import flash.net.navigateToURL; /* * Navega para pgina definida em url. * @param String url Caminho da pgina. * @return void */ function gotoURL(url:String):void { // Objeto URLRequest. var rURL:URLRequest = new URLRequest(url); // Navega para a url do objeto URLRequest. navigateToURL(rURL, '_blank'); } gotoURL("http://www.apostilando.com");

ORIENTAO A OBJETOS COM AS3


At o momento em nosso curso de AS3 vimos algumas situaes essenciais para trabalhar com AS3 no Flash, porm no foi visto nada que no poderia ser feito de forma mais fcil com AS2, ento voc pode estar se perguntando, que vantagem se tem em utilizar o AS3 para chegar ao mesmo resultado AS2, sendo que da mais trabalho. A principal vantagem de se utilizar o AS3 que ele permite um cdigo mais correto e melhor estruturado respeitando normas e regras de codificao. Ele est mais Orientado a Objetos e a partir deste captulo vamos entender um pouco mais como o Flash se comporta. um capitulo de nosso curso bem terico, mas que lhe dar todo um suporte para exemplos reais de Flash com AS3 e Flex / Flash Builder.

A orientao a objetos, tambm conhecida como Programao

34

Orientada a Objetos (POO), ou ainda em ingls Object-Oriented Programming (OOP) um paradigma de anlise, projeto e programao de sistemas de software baseado na composio e interao entre diversas unidades de software chamadas de objetos. Para saber mais

(http://pt.wikipedia.org/wiki/Orientao_a_objetos.)

Conceitos
O Flash trabalha com vrios conceitos, alguns inclusive j vistos, mas que so de extrema importncia. Tipo de Dados: O tipo de informao que uma varivel pode armazenar. Ocorrncia: Um objeto real criado em um programa Classes Incorporadas: So classes existentes dentro do AS3, todas derivam da classe Object. Hierarquia de Classes: A estrutura de vrias classes relacionadas, especificando as classes que herdam funcionalidade de outras classes. Exemplos de variveis:

Pacotes
Pacotes (packages) um conjunto de classes. Na verdade, uma pasta, a parte do conjunto. Ento, a grosso modo, um pacote uma pasta com um monte de classes dentro. Crie um arquivo AS3 e salve-o com o nome de pacote. Inicie agora um arquivo Actionscript File.

35

Observe que este arquivo muito semelhante a janela de actions, pois esta a sua funo, a insero de scripts que sero posteriormente chamados dentro do filme principal. Vamos criar um exemplo simples para teste Dentro de seu arquivo de actionscript digite:

Salve seu arquivo como Externa. O arquivo ser salvo com a extenso AS. Sempre salve seu arquivo com o nome de sua funo, classe, etc. Ainda precisamos adicionar ao cdigo que ele poder ser acessado em qualquer nvel do cdigo. Ento antes de function acrescente public.

36

Como ele um elemento pblico, necessrio acrescentar ele dentro de pacotes para que possa ser acessado. Altere o seu cdigo da seguinte forma.

Observe que no exemplo eu no adicionei um nome ao pacote (package), por se tratar de um exemplo simples, esta foi minha opo, porm mais a frente vamos trabalhar com nomes de pacotes para evitar assim cdigos confusos. Retorne agora ao seu arquivo Flash e para chamarmos a funo que est em nosso arquivo Actionscript basta colocar no painel de aes: Externa();

Observe no painel de Output que ele carrega a String que temos em nossa funo. Crie um novo arquivo ActionScript file e nele vamos criar um novo pacote com uma varivel do tipo Number.

37

Observe no exemplo acima que eu dei um nome para meu pacote, ento ao salvar este exemplo, o mesmo dever estar dentro de uma pasta chamada variveis. Ao salvar o arquivo ento, crie antes uma pasta variveis e salve seu arquivo dentro dela.

Observe tambm que o nome do arquivo deve ser o mesmo de sua varivel. Para que este pacote consiga ser mostrado no arquivo do Flash precisamos importar o mesmo para dentro do nosso arquivo. Volte ao seu arquivo Flash e no painel de aes digite.

38

Pressione CTRL+ENTER para ver o resultado na janela de Output.

Um cuidado importante ao se trabalhar com nomes de arquivos, variveis, funes etc. no Flash que ele Case Sensitive, ou seja, ele diferencia maisculas de minsculas, se voc adicionar um nome de funo com inicial maiscula mantenha no nome de seu arquivo AS e tambm na chamada da funo. Quando voc ter muitos arquivos As em um nico pacote, e precisar trabalhar com eles no mesmo arquivo, voc pode usar : import nomedopacote.*; Vamos a outro exemplo.

Crie um novo arquivo AS e adicione o seguinte cdigo

Para salvar seu arquivo AS, ser necessrio criar a estrutura de pastas para podermos acessar ao arquivo.

39

Vamos chamar o pacote dentro de nosso filme.

Pressione CTRL+ENTER e veja o resultado na janela de Output.

Classes
Classe o fundamento da programao orientada a objetos. Elas oferecem um modo simples e organizado para organizar mtodos e atributos. Podemos dizer que, sem classes, no h OOP. Elas armazenam informaes sobre os tipos de dados que um objeto pode manter e os comportamentos que um objeto pode exibir. O caminho da pasta do arquivo que contm a classe deve obedecer a hierarquia dos pacotes. Cada

40

arquivo poder ter apenas uma classe pblica. Vamos entender melhor como funcionam as classes, crie um novo arquivo AS3 Salve seu arquivo e inicie um novo arquivo ActionScript File (Menu File, New).

Vamos inicialmente criar o nosso pacote.

Vamos gora criar a nossa classe publica

41

Vamos salvar nosso arquivo. Deve-se obrigatoriamente respeitar a estrutura de pastas de nosso pacote.

No seu arquivo Flash, vamos importar a classe criada, mesmo que ela no contenha nada. Abra o painel de aes e digite:

42

Observe que necessrio importar todo o caminho de nosso pacote e chamar a classe criada. Para criar um objeto desta classe acrescente ao cdigo

Desta forma atravs da varivel, poderemos manipular a nossa classe.

Propriedades da Classe
So os membros de uma classe declarados em seu corpo como variveis ou constantes, ou membros definidos por mtodos como getter ou setter. A declarao de uma propriedade feita declarando uma varivel ou constante. As propriedades de ocorrncia de uma classe sero acessadas atravs do operador ponto. Dentro da construo de nossa classe. Adicione a ela as variveis

Salve seu arquivo e vamos agora para nosso arquivo Flash Vamos agora adicionar valores as nossas variveis.

43

Vamos testar se a classe est sendo carregada corretamente.

Podemos aplicar as nossas classes modificadores de acesso para as propriedades. Eles podem ser: Internal: Visivel dentro do mesmo pacote Private: Visivel para referncias na mesma classe Protected: Para a mesma classe e para classes derivadas Public: Todos e lugares Static: Especifica que uma propriedade pertence classe, e no s suas

44

ocorrncias. Exemplos:

private var Nomedavariavel:String; static var Nomedavariavel2:Number; public var Nomedavariavel3:Boolean;

Vamos criar em nossa classe uma varivel esttica. Abra seu arquivo de classe e adicione a seguinte linha de cdigo.

Porm para que eu possa acessar esta varivel no meu exemplo FLA, ela precisa tambm ser publica, ento adicione ao seu cdigo:

45

Vamos ao Flash, e vamos adicionar valores a esta varivel esttica.

Voc pode observar que atribumos o valor a classe e no a varivel criada.

Mtodos
So funes que fazem parte de uma definio de classe. Depois que uma ocorrncia da classe criada, um mtodo ligado a essa ocorrncia. Ao contrrio de uma funo declarada fora de uma classe, um mtodo no pode ser usado parte da ocorrncia qual ele est anexado.

46

Declarando um mtodo: function Metodo( ):void{ ... } Vamos criar ento um funo publica em nossa classe. Retorne ao seu arquivo AS e adicione as seguintes linhas de comando.

Para executar o mtodo no arquivo FLA, abra o painel de aes de nosso exemplo e adicione.

47

Mtodo de Construtor
Os mtodos de construtor, s vezes chamados simplesmente de construtores, so funes que compartilham o mesmo nome da classe na qual eles so definidos. Qualquer cdigo includo em um mtodo de construtor executado todas as vezes que uma ocorrncia da classe criada com a palavra-chave new. Os mtodos de construtor podem ser apenas pblicos, mas o uso do atributo public opcional. Voc no pode usar nenhum dos outros especificadores de controle de acesso, inclusive private, protected ou internal, em um construtor. Voc tambm no pode usar um espao para nomes definido pelo usurio com um mtodo de construtor. Abra seu arquivo AS e vamos criar nosso mtodo construtor, lembre-se apenas que ele deve ter sempre o mesmo nome da classe.

48

Com isto podemos alterar o cdigo em nosso arquivo FLA. Abra seu cdigo e comente as seguintes linhas

Os valores desta parte sero passados ento como parmetros.

49

Com isto eu poderia retirar o comando public de minhas variveis no arquivo AS, por uma questo mais correta eu poderia substituir public por internal.

Encapsulamento
Encapsulamento, o que torna sistemas com Orientao a Objetos flexveis, adaptveis, com partes independentes. A idia consiste em dividir o sistema no maior nmero de partes possveis e que cada uma dessas partes sejam isoladas e de certa forma independentes.

Operadores
Operadores so elementos dentro de linguagens de programao para manipular dados. O ActionScript 3.0 possui uma srie de operadores, eu vou citar os principais:

Operadores de Acesso . ponto O operador ponto utilizado para acessar caminhos, objetos, propriedades, mtodos e eventos. de longe o operador mais utilizado no ActionScript, pois sempre que queremos disparar alguma ao a um objeto ou programar um evento,

50

utilizamos o operador ponto freqentemente. Exemplos: // Acesso a propriedade x do objeto instanciado como mBTN mBTN.x=400; // Acesso ao texto_txt, que est dentro de botao1, que est dentro de menu menu.botao1.texto_txt;

[] colchetes O operador colchetes tem 2 utilidades principais: * Acessar elementos dentro de um Array (Array um tipo de dado que permite vrios valores dentro de uma mesma varivel, esses valores so identificados por sua posio numrica) // Declarao de um Array com nomes var nomes:Array=new Array(Danilo Santana, Fbio Ricotta, Juliano Haussen); // Resgate da posio 1 >> Fbio Ricotta pois os ndices comeam do 0 nomes[1]; * Acessar objetos dinmicos quando h uma expresso a ser resolvida ou o objeto criado dentro de um lao por exemplo

// Declara a varivel contador valendo 0 var contador:uint=0; // Acessa o botao0 dentro do escopo atual this["botao"+contador];

Operador de Atribuio = igual O operador igual atribui um valor a uma varivel, ou ento define a herana do objeto. Exemplo: // Declara uma varivel nome var nome:String;

51

// Atribui valor a varivel nome=Danilo Santana; // Declara uma varivel carregador var carregador:Loader; // Define a herana com a classe Loader carregador= new Loader();

Operadores Matemticos + mais O operador mais serve para somar valores numricos ou concatenar strings. Exemplo: // Soma 2 com 2. Tipos numricos, retorno 4 2+2; // Concatena 2 com 2. Tipo string, retorno 22 2+2; - menos O operador menos serve para subtrair valores de expresses matemticas. Exemplo: // Declara a varivel valor var valor:uint=50; // Subtrai 15 de valor. Retorna 35 valor 15;

++ incremento O operador incremento aumenta o valor da varivel em 1 a cada execuo. Exemplo: // Declara a varivel contador var contador:uint=0; // Incrementa a varivel em 1. Retorna 1 contador ++; // Incrementa a varivel em 1. Retorna 2, j que j foi incrementado 1

52

contador ++;

+= auto incremento O operador auto incremento, incrementa a varivel de acordo com o valor passado. Exemplo: // Declara a varivel temperatura var temperatura:int=-10; // Auto incrementa a varivel com 40. Retorno 30 temperatura += 40;

Operadores de Comparao == igual O operador igual compara se um valor igual a outro, no confundir com o operador de atribuio que um igual simples. Exemplo: // Compara se 10 igual a 20. Retorno falso 10 == 20

!= diferente O Operador diferente tambm compara valores mas retorna verdadeiro se a comparao retornar diferena nos valores. Exemplo: // Compara se 10 diferente a 20. Retorno verdadeiro 10 != 20 > maior que O operador maior que compara dois valores e retorna verdadeiro ou falso. Exemplo: // Declara uma varivel contagem e uma passadas var contagem:uint = 0; var passadas:uint = 1; // Compara se passadas maior que contagem. Retorno verdadeiro

53

passadas > contagem;

Loops
Loops so estruturas de cdigo que podem executar um bloco de aes repetidas vezes de maneira automatizada e em um curto espao de tempo.

Vamos aos principais tipos de loops no Flash. Estrutura de Repetio FOR Seguramente o tipo de loop mais utilizado, pois tem uma sintaxe e um controle muito facilitados. O FOR executa um bloco de aes de acordo com uma expresso a ser resolvida para definir quantas vezes esse bloco de aes ser executado. Sintaxe for (inicio; limite; incremento) { bloco de aes a serem executadas. }

Ns utilizamos muito o FOR para criao de tarefas automticas e que exigiriam cdigos muito repetitivos. Exemplo for (var i:uin = 0; i < 5; i ++) { trace (i); } Fazendo a leitura de interpretao desse cdigo ns temos o seguinte: Cria uma varivel uint valendo 0, com incremento de 1 em 1 (i++) e enquanto essa varivel for menor que 5 executa o escopo, executa o que estiver dentro das chaves. No caso um trace de i. O mtodo trace exibe no painel output o valor de i a cada execuo do for enquanto a condio de limite for verdadeira. O retorno desse cdigo : 0, 1, 2, 3, 4

54

0 porque o primeiro valor de i 0 de acordo com a minha declarao, e at 4 porque quando i vale 5 ele no menor que 5, ele seria menor igual, o que no o caso. Ento de forma resumida esse o papel do FOR executar um bloco de cdigo de acordo com uma expresso de limite.

Estrutura de Repetio While O loop while trabalha com uma expresso simples sem possuir o incremento a varivel dentro de sua declarao Sintaxe while (limite) { bloco de aes } Exemplo // Declara a varivel contador var contador:uint = 0; // Enquanto contador for menor que 5 executa o bloco de aes while (contador < 5) { trace (contador); // Depois de exibir o contador atual, incrementa seu valor em 1 contador ++; }

Estrutura de Repetio Do While O loop do while tambm trabalhar com uma expresso simples de limite porm independentemente se a expresso for verdadeira o bloco de cdigo sempre vai ser executado pelo menos uma vez. Sintaxe do {

55

bloco de aes }while (limite) Exemplo // Declara a varivel contador var contador:uint = 0; // Executa uma vez o bloco de cdigo do { trace (contador) // Avalia a expresso de limite e caso ela seja verdadeira executa o bloco de cdigo novamente. } while (contador < 5)

Em linhas gerais no h muito diferena entre os loops no que diz respeito a velocidade de execuo ou consumo de processamento, ento a escolha de qual utilizar beira a preferncia pessoal do desenvolvedor. Com isso terminamos a parte terica de nosso estudo do AS3, embora seja uma parte chata de extrema importncia para se entender os prximos exemplos do curso de AS3 e do mdulo de Flash Builder (antigo Flex).

CARREGAMENTO DE ARQUIVOS SWF EXTERNOS


Com o As3 no mais possvel carregar um arquivo externo com LoadMovie. Crie um arquivo qualquer e salve-o como carregado. Pressione

CTRL+ENTER para gerar o SWF. Crie um novo documento. Crie uma nova camada de nomeie ela para AS. Adicione o seguinte cdigo. // cria uma instncia do Loader var carregador:Loader = new Loader(); // armazena na varivel arquivo o nome do swf externo a ser carregado var arquivo:String = "carregado.swf"; // cria uma instncia do URLRequest, que carregar o swf armazenado na varivel "arquivo" var requisicao:URLRequest = new URLRequest(arquivo);

56

// define onde o swf externo ser carregado carregador.x = 0; carregador.y = 0; // Carrega o swf solicitado carregador.load(requisicao); // Inclui o swf carregado no Stage this.addChild(carregador);

Salve o seu arquivo e pressione CTRL+ENTER para testar o carregamento.

Display Object
Crie um novo arquivo fla e nomeie-o como desejar. No campo Document class do painel Properties, digite exemplo (vamos definir essa classe a seguir, portanto, ignore a janela com mensagem de erro que surgir).

57

Salve seu arquivo. Crie um arquivo as e nomeie-o como exemplo.as. Salve-o na mesma pasta em que salvou o arquivo fla, lembre-se que isso necessrio para que o arquivo FLA reconhea a classe. Adicione no seu arquivo AS o seguinte cdigo:

package { import flash.display.MovieClip; public class exemplo extends MovieClip { // No esquea que o nome da classe e nome da funo deve ser o mesmo nome do nome do arquivo .as, neste caso, exemplo public var mc1:MovieClip = new MovieClip(); public var mc2:MovieClip = new MovieClip(); /* Duas variveis so definidas representando duas instncias

58

da classe MovieClip. A definio de variveis antes da definio de funes as tornaro acessveis para todas as funes dentro da classe. Tornando-as pblicas, tambm sero acessveis atravs de cdigos externos classe tambm. Observa a sintaxe para a definio das variveis: var nome_variavel : tipo_variavel = valor; mc1 e mc2 representaro dois MovieClips */ public function exemplo() { // Define a funo principal da classe, Esta funo sempre ser executada. mc1.graphics.lineStyle(1); mc1.graphics.beginFill(0xff0000); mc1.graphics.drawCircle(100,100,50); /* Desenha um crculo (com borda preta, 1 px de espessura e preenchido com vermelho) */ this.addChild(mc1); /* addChild um novo comando introduzido no AS3. Objetos que sero mostrados agora so armazenados em uma lista. addChild incluir novos objetos da lista. O objeto inserido mais recentemente na lista posicionado no topo da lista, ou seja mostrado em primeiro plano. Em outras palavras, voc pode considera Colocando objetos no Stages.fla o MovieClip raiz (root) onde inclumos o mc1 (crculo)no Display List deste MC (root) */

59

mc2.graphics.lineStyle(1); mc2.graphics.beginFill(0xffff00); mc2.graphics.drawRect(100,100,150,100); /* Desenha um retngulo (borda preta, 1 px de espessura e preenchido com amarelo) no MC mc2 e o inclui no Display List. Quando for mostrado, o mc2 estar em primeiro plano, frente do crculo. */ this.addChild(mc2); } } }

COMPONENTE LIGHTBOX
Lightbox um gerenciador de imagem em CSS que permite a imagem abrir na tela sem precisar carrega uma nova pagina. um pequeno script em javascript que cria este efeito quando se clica numa imagem que linka outra, por exemplo um thumbnail que um link para a imagem em tamanho real, em que a segunda aparece sobreposta pgina mostrada no browser.

60

Os exemplos mostrados aqui j esto sendo feitos com a verso CS5 do Flash, mas ser possvel que sejam feitos no Flash CS3 ou CS4, pois ambos do suporte ao ActionScript 3.

Vamos usar o componente FlashLightBox. um componente que permite que o efeito LightBox presente em algumas pginas HTML possa ser usado em arquivo do Flash usando apenas ActionScript.

O componente est disponvel no endereo: http://www.4shared.com/zip/nteCY14d/FlashLightBoxAS3.html

Copie o arquivo para a seguinte pasta: Flash CS3 C:/Arquivos de Programas/Adobe/Adobe Flash

CS3/linguagem/Configuration/Components

Flash CS4 / CS5

C:/Arquivos de Programas/Adobe/Adobe Flash

CS4/Common /Configuration/Components. Se o Flash j estiver sendo executado, feche-o e depois abra novamente. Clique no Menu Window, Components para ter acesso ao componente.

61

Arraste uma instncia do componente para o palco e observe no painel Component Parameters.

A personalizao do Componente s ser vlida caso use as funes reservadas a um site feito inteiramente no Flash, caso seu site no seja totalmente em Flash e tiver que usar o JavaScript, a personalizao ter que ser feita atravs do arquivo CSS do LightBox. No exemplo vamos carregar uma imagem, ento faa uma miniatura da

62

imagem que ser nosso boto para carregar a imagem maior.

Aps ter adicionado o Componente no palco e customizado ele atravs do painel Component Inspector, necessrio instanciar esse Componente. Instancie como light. Importe a imagem em miniatura, converta em Movie Clip e instancie como img01_mc. Crie uma nova camada chamada AS. Adicione o seguinte cdigo.

img01_mc.addEventListener(MouseEvent.CLICK, btPress); function btPress(event:MouseEvent):void { light.carrega("pilulas.jpg", "Bem-Vindo ao Deserto do real"); }

Para testar seu filme publique o mesmo e abra o HTML no navegador.

63

Podemos tambm fazer com carregue varias imagens. Adicione as demais miniaturas e instancie as mesmas. No exemplo mantive a seqencia img02_mc, img03_mc, img04_mc. Para isso mude seu cdigo para:

var

fotos:Array

["pilulas.jpg",

"ciber.jpg",

"cibercultura2.jpg","cibercultura.jpg"]; var textos:Array = ["Bem-Vindo ao Deserto do Real", "Simulacros e Simulaes", "O real e o imaginrio", "Cidades Vigiadas"]; img01_mc.addEventListener(MouseEvent.CLICK, btPress); function btPress(event:MouseEvent):void { light.carregaMultiplos(fotos, textos, 1); }

img02_mc.addEventListener(MouseEvent.CLICK, btPress2); function btPress2(event:MouseEvent):void {

64

light.carregaMultiplos(fotos, textos, 2); }

img03_mc.addEventListener(MouseEvent.CLICK, btPress3); function btPress3(event:MouseEvent):void { light.carregaMultiplos(fotos, textos, 3); }

img04_mc.addEventListener(MouseEvent.CLICK, btPress4); function btPress4(event:MouseEvent):void { light.carregaMultiplos(fotos, textos, 4); }

65

Galeria de fotos com XML


Continuando nosso estudo vamos criar uma galeria que une um arquivo XML, com lightBox no Flash. Para nosso exemplo vou trabalhar com 6 imagens. Vamos tambm utilizar o componente LightBox que usamos no exemplo anterior. Inicialmente monte a seguinte estrutura XML, no seu editor de textos, ou editor HTML. Para o exemplo eu salvei o arquivo XML na mesma pasta das imagens. <?xml version="1.0" encoding="utf-8"?> <imagens> <foto> <imagem>001.jpg</imagem> <texto>GT3 - Brasil</texto> </foto> <foto> <imagem>002.jpg</imagem> <texto>Lamborguini gallardo</texto> </foto> <foto>

66

<imagem>003.jpg</imagem> <texto>Porsche Carrera</texto> </foto> <foto> <imagem>004.jpg</imagem> <texto>Ford GT</texto> </foto> <foto> <imagem>005.jpg</imagem> <texto>Dodge Viper</texto> </foto> <foto> <imagem>006.jpg</imagem> <texto>Ferrari F430</texto> </foto> </imagens> Lembre-se apenas de dar o nome de sua imagem e a descrio. Inicie seu arquivo Flash. Para nosso exemplo criei um arquivo de 1024x768 ActionScript 3 Salve seu arquivo na mesma pasta de seu arquivo XML. Para nosso exemplo salvei como gt3.fla. Abra o painel componentes e arraste o componente FlashLightBox para o palco.

67

Intncie-o como flb Vamos criar todo o contedo de nosso exemplo com AS3. Adicione o seguinte cdigo:

/* Alinha o arquivo para o canto superior esquerdo */ stage.align = StageAlign.TOP_LEFT; /* Desabilitamos o dimensionamento do arquivo */ stage.scaleMode = StageScaleMode.NO_SCALE; /* Varivel que armazena o MovieClip selecionado */ var alvo:MovieClip; /* Varivel que armazena a quantidade de itens do XML */ var total:Number = new Number(); /* Criamos uma instancia da Classe XML */ var xml:XML = new XML(); /* Criamos uma instancia da Classe URLLoader */ var arquivo:URLLoader = new URLLoader(); /* Carregamos o XML */ arquivo.load(new URLRequest("gt3.xml")); /* Adicionamos um event listener chamando a funo arquivoOk */ arquivo.addEventListener(Event.COMPLETE, arquivoOk); /* Funo chamada assim que o XML carregado */

68

function arquivoOk(event:Event):void { /* Armazenamos os dados do XML na instancia da Classe XML */ xml = new XML(event.target.data); /* Armazenamos o total de itens */ total = xml.foto.length(); /* Chama a funo carrega */ carrega(); } /* Funo que carrega as imagens */ function carrega() { /* Criamos um lao para percorrer todos os itens do XML */ for (var i=0; i<total; i++) { /* Criamos um MovieClip */ var mc:MovieClip = new MovieClip(); /* Rotacionamos ele randomicamente */ mc.rotation = Math.round(Math.random()*-30)+10; /* Habilitamos o clique duplo do Mouse */ mc.doubleClickEnabled = true; /* Adicionamos um event listener para quando o mouse for clicado no MovieClip */ mc.addEventListener(MouseEvent.MOUSE_DOWN, mcPress); mc.addEventListener(MouseEvent.MOUSE_UP, mcRelease); /* Adicionamos um event listener para o clique duplo */ mc.addEventListener(MouseEvent.DOUBLE_CLICK, mcDoble); /* Armazena o nmero do n do XML */ mc.id = i; /* Criamos uma instancia da Classe DropShadowFilter */ var sombra:DropShadowFilter = new DropShadowFilter(); /* Modificamos o angulo da sombra */ sombra.angle = 45; /* Modificamos o blurX e blurY */ sombra.blurX = 5;

69

sombra.blurY = 5; /* Modificamos a distancia */ sombra.distance = 3; /* Modificamos a intensidade da sombra */ sombra.strength = 0.75; /* Criamos um Array para armazenar os filtros utilizados */ var filtro:Array = new Array(); /* Adicionamos no Array a sobra criada */ filtro.push(sombra); /* Adiciona os filtros ao MovieClip */ mc.filters = filtro; /* Criamos uma instancia da Classe Loader */ var loader:Loader = new Loader(); /* Desabilitamos o mouse */ loader.mouseEnabled = false; /* Carregamos a imagem */ loader.load(new URLRequest(xml.foto[i].imagem)); /* Modificamos o tamanho da imagem randomicamente */ loader.scaleX = (Math.random()*0.2)+0.6; loader.scaleY = loader.scaleX; /* Modificamos a posio da imagem */ loader.x = 10; loader.y = 10; /* Adicionamos um event listener para saber quando terminou de carregar a imagem */ loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderOk); /* Adiciona a imagem ao MovieClip criado */ mc.addChild(loader); /* Adiciona o MovieClip ao palco */ addChild(mc); }

70

} /* Funo chamada quando a imagem termina de ser carregada */ function loaderOk(event:Event):void { /* Criamos uma referencia para a imagem */ var loader:Loader = event.target.loader; /* Criamos uma referencia ao MovieClip */ var mc:MovieClip = MovieClip(loader.parent); /* Definimos a cor de fundo da borda */ mc.graphics.beginFill(0xFFFFFF, 1); /* Comeamos a desenhar a borda no MovieClip de acordo com o tamanho da imagem */ mc.graphics.lineTo(0, 0); mc.graphics.lineTo(0, loader.height+20); mc.graphics.lineTo(loader.width+20, loader.height+20); mc.graphics.lineTo(loader.width+20, 0); /* Termina de desenhar */ mc.graphics.endFill(); /* Modifica a posio do MovieClip de forma randmica */ mc.x = Math.round(Math.random()*(stage.stageWidth-mc.width)); mc.y = Math.round(Math.random()*(stage.stageHeight-mc.height)); } /* Funo chamada quando clicamos duas vezes sobre a imagem */ function mcDoble(event:MouseEvent):void { /* Chamamos a funo carrega do Componente FlashLightBox */ /* A funo recebe o endereo da imagem e o texto para a legenda */ flb.carrega(xml.foto[event.target.id].imagem, xml.foto[event.target.id].texto); } /* Funo chamada quando clica com o mouse sobre o MovieClip */ function mcPress(event:MouseEvent):void { /* Identificamos o alvo */ alvo = MovieClip(event.target);

71

/* Coloca o alvo a frente dos demais MovieClips */ addChild(alvo); /* Movimenta o MovieClip */ alvo.startDrag(); } /* Funo chamada quando soltamos o boto esquerdo do mouse */ function mcRelease(event:MouseEvent):void { /* Paramos de movimentar o MovieClip */ event.target.stopDrag(); }

FLASH MOBILE
Para finalizar nosso estudo no Flash vamos criar um exemplo simples de aplicao de Flash para tecnologia mbile. J a algumas verses a Adobe deu a seus aplicativos a possibilidade de criar contedo para tecnologia mvel atravs do Aplicativo Device Central.

72

Como exemplo de criao vamos utilizar um exemplo criado por Paul Wyatt (Designer digital premiado e conceituado na Europa). Abra o exemplo mobile_limpo.fla, ser nele que vamos trabalhar. Observe que na biblioteca de seu flash j esto os smbolos e imagens a serem utilizados.

73

Renomeie a camada atual para phone me, arraste para esta camada o boto callme_btn e a posicione nas coordenadas X:121 e Y: 243. Instancie como phone_btn.

74

Crie um quadro chave no frame 3 e no quadro 2 deixe como um quadro vazio. Crie as seguintes camadas.

Para a camada meutrabalho arraste o boto work_btn e posicione nas coordenadas X: 121 e Y: 140. Instancie como work_btn.

75

Na camada marcos, acrescente o nome. Para estas duas camadas mantenha em branco no frame 2 e 3. Na camada teclas adicione duas caixas de texto.

Crie um quadro chave no frame 2, e mude o texto do boto Quem Sou para Home.

76

Na camada Labels crie quadros chaves e pelo painel de propriedades da camada de nome a estes frames, o primeiro como: start, o segundo como work movie e o terceiro como about me.

Na camada telas, no primeiro frame adicione a ao stop(); Insira um quadro chave no frame 2 e arraste para ele o Movie Clip para este frame posicione nas coordenadas X: 24,3 e Y:0,0.

77

Acrescente tambm neste frame uma ao stop(); No Frame 3 insira um quadro vazio e arraste o Movie Clip texto para este frame posicione nas coordenadas X:43,9 e Y:18,5.

Na camada de aes no primeiro frame adicione ou copie do arquivo pronto:

stop();

78

_focusrect = false;

fscommand2("SetSoftKeys", "Main", "Exit"); fscommand2("SetQuality", "high"); fscommand2("Fullscreen", "true");

if (selectedItem == null) { Selection.setFocus(work_btn); } else { Selection.setFocus(selectedItem) }

work_btn.onPress = function() { selectedItem = this; gotoAndStop("work movie"); };

phone_btn.onPress = function() { selectedItem = this; getURL("tel: 00000000"); };

Key.removeListener(myListener); var myListener:Object = new Object(); myListener.onKeyDown = function() { var keyCode = Key.getCode(); if (keyCode == ExtendedKey.SOFT1) {

gotoAndStop("about me"); } else if (keyCode == ExtendedKey.SOFT2) {

79

fscommand2("Quit"); } }; Key.addListener(myListener);

Crie um quadro chave no frame 2 e adicione o seguinte cdigo: Key.removeListener(myListener); var myListener:Object = new Object(); myListener.onKeyDown = function() { var keyCode = Key.getCode(); if (keyCode == ExtendedKey.SOFT1) { gotoAndStop("start"); } else if (keyCode == ExtendedKey.SOFT2) { fscommand2("Quit"); } }; Key.addListener(myListener); Crie um quadro chave no frame3 e adicione o seguinte cdigo: Key.removeListener(myListener); var myListener:Object = new Object(); myListener.onKeyDown = function() { var keyCode = Key.getCode(); if (keyCode == ExtendedKey.SOFT1) { gotoAndStop("start"); } else if (keyCode == ExtendedKey.SOFT2) { fscommand2("Quit"); } }; Key.addListener(myListener);

Clique no menu Control, Test Movie, in Device Central.

80

Com este exemplo finalizamos nosso estudo com AS3 dentro de Flash

81

Anda mungkin juga menyukai