Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO PARA INTERNET RICA - EDO0417 Semana Aula: 12 Flash AS3 - Parte I Tema Flash AS3 - Parte I Palavras-chave Objetivos Entender a evolução da linguagem actionscript Conhecer as principais mudanças do AS3 em relação ao AS2 Familiarizar-se com a sintaxe do AS3 Estrutura de Conteúdo A partir da versão CS3 do Flash temos suporte para ActionScript 3.0 - a mais nova linguagem de programação baseada em padrões para o Adobe Flash (SWF), filmes e aplicativos. Você pode achar difícil começar com o ActionScript 3,0, quando comparados às versões anteriores do ActionScript. A transição para o ActionScript 2 do ActionScript 1, por exemplo, foi relativamente mais suave comparado ao salto para ActionScript 3.0, especialmente para alguém que está propenso a trabalhar e a codificar com a IDE do Flash (Integrated Development Environment). Um Breve Histórico do ActionScript no Flash Inicialmente a sintaxe do ActionScript 1 no o Flash 3, foi simples e concisa, a funcionalidade era baseada principalmente em torno do frame de navegação e a interação básica do mouse. Permaneceu assim, consistente até a versão 5 do Flash, onde o ActionScript assumiu uma forma mais parecida com o JavaScript. Isso proporcionou uma grande funcionalidade. O ActionScript também se tornou uma linguagem protótipo que permita a funcionalidades de OOP simples similar à que está disponível em JavaScript. Isto foi reforçado na versão seguinte do Flash, Flash MX (6). Na versão Flash MX 2004 (7) é apresentado o ActionScript 2.0. Havia dois grandes melhorias que vieram com o ActionScript 2: tipagem de dados e uma nova classe syntax. Tipagem de dados permitiu-lhe especificar o tipo de valor de suas variáveis e constantes, seja um número, uma string, ou qualquer outro tipo de objeto ou valor. Esta associação de tipo era estritamente para depuração. A nova classe syntax foi utilizada para definir classes em ActionScript 2 semelhantes as definidas para linguagens como Java. Embora Flash ainda não tivesse suporte a classes, além disso, sob a forma de protótipos (no final, ActionScript 2 ainda basicamente é compilado para ActionScript 1), esta nova sintaxe desde um estilo familiar que era útil para pessoas que migram de outras línguas, e desde uma forma mais concreta de organizar as definições de classe em arquivos separados como e pacotes. Depois disso pulamos para o Flash CS3 (versão 9, não temos tantos avanços em ActionScript na versão Flash 8) . Aqui nós temos uma linguagem ActionScript nova que não só recebeu um novo número de versão, mas também uma nova máquina virtual ( o software subjacente no Flash Player que executa ActionScript durante a reprodução). Ambos ActionScript 1 e 2 usam ActionScript AVM1 (ActionScript Virtual Machine 1), que são essencialmente os mesmos em termos das necessidades de reprodução. Lembre-se, principalmente ActionScript 2 acrescentou apenas uma verificação de tipo em tempo de execução e uma nova sintaxe que se tornou essencialmente ActionScript 1 quando compilado. ActionScript 3 é executado em uma nova máquina virtual chamada AVM2 (ou às vezes AVM +) projetada especificamente, a partir do zero. para executar ActionScript 3 e só código ActionScript 3. Como resultado, Um filme em ActionScript 3 não pode se comunicar diretamente com filmes em ActionScript 1 ou 2. O ActionScript 3 é muito diferente? ActionScript 3 é diferente. Muito diferente. Tão diferente, de fato, que exige uma máquina virtual completamente nova para executá-lo. Mas em sua essência, ainda é ActionScript e como você vai notar que muitos dos comandos e conceitos de programação aplicada aos ActionScript 1 e 2 ainda se aplica a ActionScript 3. Às vezes o ActionScript 3 e o ActionScript 2 podem ter códigos equivalentes. No entanto, isso nem sempre é o caso. E no final, há mudanças suficiente para fazer uma conversão direta entre as duas freqüentemente é muito difícil. Essas mudanças eram necessárias, no entanto. ActionScript 3 foi construído com eficiência e produtividade na mente. Não apenas a eficácia no desenvolvimento, mas também o desempenho de reprodução onde o código em ActionScript 3 pode ser reproduzido no Flash Player até 10 vezes (se não mais) mais rápido do que código do ActionScript 2. Sim, você vai descobrir que muitas das mesmas tarefas braçais em ActionScript 1 e ActionScript 2 e agora parece ter o dobro do tempo para o código em ActionScript 3, mas no final a velocidade extra e funcionalidade. O programador casual se desesperar, colocar as mãos na cabeça e querer arrancar os cabelos, mas o programador avançado vai saltar de alegria em alegria. Vamos ver agora as principais mudanças do AS3 em relação ao AS2, assim vamos conhecendo a sintaxe do AS3. Constantes São campos cujos valores são definidos e não podem ser alterados em tempo de execução. const ALTURA_MAXIMA:Number = 900; Obs.: É um convenção em qualquer linguagem de programação declarar as constantes com caixa alta (letras maiúsculas). Variáveis Os tipos já existentes não sofreram alteração visíveis, somente internamente para melhorar o desempenho, as novidades são 2 novos tipos de variáveis numéricas: int e uint Variáveis Numéricas Nome Tipo de valores Faixa de valores int Inteiros, negativos e positivos de -2.147.483.648 à 2.147.483.647 (32 bits) uint Inteiros, apenas positivos de 0 à 4.294.967.295 (32 bits) Number ponto flutuante, negativos e positivos de -9,007,199,254,740,992 à 9,007,199,254,740,992 (52 bits) Alteração no nome das propriedades um detalhe importantíssimo no nome das propriedades é que agora não existe mais o _ (underline) antes do nome dela, veja como utilizar: objeto_mc.x = 0; objeto_mc.y = 0; objeto_mc.width = 200; objeto_mc.height = 200; As propriedades _xmouse e _ymouse mudaram de nome, agora são mouseX e mouseY respectivamente o mesmo para as propriedades _xscale e _yscale que agora são scaleX e scaleY respectivamente, outra alteração é nos valores permitidos nesses atributos, antes você deveria colocar um valor entre 0 e 100, a nova maneira esses valores vão de 0 à 1. veja a diferença: antes: mcSprite._xscale = 50; mcSprite._yscale = 100; agora: mcSprite.scaleX = 0.5; mcSprite.scaleY = 1; o mesmo vale para a propriedade _alpha os valores vão de 0 à 1. // atribuindo 50% de alpha mcSprite.alpha = 0.5; Funções com parâmetros opcionais Agora você especificar parâmetros opcionais para seus métodos. Esta característica não esta disponível no AS2. Parâmetros opcionais têm que ser obrigatoriamente os últimos parâmetros e devem ter um valor padrão definido. O exemplo abaixo demonstra a utilização de parâmetros opcionais. function exibeTexto(numero:Number, texto:String = "abacaxi"){ trace(numero, texto ); } exibeTexto(1); //saída 1, abacaxi exibeTexto(2, "abacate"); //saída 2, abacate Adicionando ações em botões Uma grande alteração feita no AS3 é que não se pode mais colocar actionscript diretamente no objeto, isso mesmo, as ações agora só podem ser colocadas na time-line, para quem usava o flash para fazer coisas simples como banner´s e apresentações, e que as únicas ações que usavam eram um play(), stop() ou getURL(), para essas pessoas a nova sintaxe talvez assuste no começo, mas não é nenhum bicho de 7 cabeças. Essa estrutura não pode ser feito no AS3: ACTIONSCRIPT 2 on(press){ trace("clicou"); } O que antes era feito assim: ACTIONSCRIPT 2 btnProximo.onPress = function(){ trace("clicou"); } Agora no AS3 deve ser feito desta maneira: ACTIONSCRIPT 3 //criar a função que será executada no click do mouse function onclick(event:MouseEvent):void { trace("clicou"); } // adiciona ao botão um ouvinte, especificando que no // evento CLICK a função onclick deve ser chamada btnProximo.addEventListener(MouseEvent.CLICK, onclick); Parâmetros function onclick(event:MouseEvent):void { } O parâmetrorecebido varia dependendo de qual evento o listener foi adicionado, nesse parâmetro (que pode ter qualquer nome, no meu caso eu coloquei "event") o objeto possui algumas informações sobre o evento que foi chamado, o que varia novamente de evento para evento no caso dos eventos ligados ao mouse, esse objeto possui as seguintes propriedades: Atributos do objeto MouseEvent Atributo Valor buttonDown true se o botão primário do mouse estiver pressionado, false caso não esteja (pode ser mais útil no evento mouseMove) ctrlKey true se a tecla CRTL estiver pressionada quando o botão foi clicado, false caso não esteja shiftKey true se a tecla SHIFT estiver pressionada quando o botão foi clicado, false caso não esteja altKey true se a tecla ALT estiver pressionada quando o botão foi clicado, false caso não esteja currentTarget é a instancia do objeto que o listener foi adicionado localX posição na horizontal em que o objeto foi clicado pelo mouse (equivale a propriedade _xmouse) localY posição na vertical em que o objeto foi clicado pelo mouse (equivale a propriedade _ymouse ) stageX posição na horizontal em que o objeto foi clicado, em relação ao Stage (equivale a propriedade _root._xmouse do AS2) stageY posição na vertical em que o objeto foi clicado, em relação ao Stage (equivale a propriedade _root._ymouse do AS2) Target é a instancia do objeto que ativou o evento, nem sempre ela será o mesmo objeto do qual o listener foi adicionado, para isso use o currentTarget Estratégias de Aprendizagem Indicação de Leitura Específica Aplicação: articulação teoria e prática Links: http://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/ http://ihmbr.blogspot.com/2009/06/historia-da-animacao.html http://ihmbr.blogspot.com/2009/07/principios-de-animacao-parte-ii.html Considerações Adicionais http://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/ http://ihmbr.blogspot.com/2009/06/historia-da-animacao.html http://ihmbr.blogspot.com/2009/07/principios-de-animacao-parte-ii.html
Compartilhar