1. O que é actionscript

Para quem ainda não sabe, o Flash tem uma linguagem de programação chamada actionscript. Na medida em que você deseja enriquecer a forma como interage com o usuário, vai precisar programar um pouco através desta linguagem.

Mas quando sei que preciso usar programação?

Vários problemas do Flash se resolvem simplesmente com animação, isto é, com objetos sobre a linha do tempo. Mas outros não! Por exemplo: imagine que você quer disponibilizar uma pequena calculadora para seu usuário. Uma que multiplique dois valores. Como resolver isso com a linha do tempo? Pois é…. não dá.

Sempre que você precisa de interação (na verdade, quase sempre, pois você consegue interagir com o usuário usando somente os estados de um botão) você vai ter que usar um pouco de programação.

2. Objetos e propriedades

O actionscript é uma linguagem que lida com objetos. Objetos são, por exemplo, instâncias de movie clips na sua tela. São instâncias de botões, caixas de texto… E não só isso. Mas por enquanto está bom.

Estes objetos têm propriedades. Uma instância de um movie clip tem uma posição na tela. Tem uma certa opacidade, uma largura, etc. Todas estas “qualidades” do objeto serão chamadas, daqui pra frente, de propriedades.

3. Instâncias

Vamos primeiro fazer uma distinção muito importante. A distinção entre o objeto da biblioteca (library) e o objeto inserido na cena.

Um objeto na biblioteca é apenas o registro da definição de um objeto, ou seja, o registro de como é o objeto criado. Ao modificar a definição de um objeto, você estará modificando todas as suas inserções.

Já um objeto inserido na cena é uma instância de um objeto. Se você decide modificar uma instância de um objeto, as outras instâncias não sofrem mudança.

Se você pretende agir sobre um determinado objeto em cena, você estará agindo sobre uma instância de um objeto. Para ser manipulada pelo programa, esta instância deve, necessariamente, ter um nome único.

Opa! Mas repare também que instâncias de símbolos gráficos não podem receber nome… logo, não podem ser manipuladas através de actionscript.

4. A primeira tentativa

A idéia é produzir uma maneira mais rica de interação com o usuário. Para isso, vamos começar deixando o usuário alterar uma propriedade de um objeto do tipo movie clip. É possível, por exemplo, alterar as propriedades de um certo objeto a partir da interação com outro objeto. Vejamos um exemplo.

Imagine que eu quero possibilitar ao usuário alterar a opacidade (o valor alpha) de um certo movie clip. Você deve se lembrar que o valor de alpha varia de zero (um objeto transparente) a 100 (um objeto opaco). Eu quero que o usuário possa digitar o valor de alpha do movie clip numa caixa de texto do tipo input box. Clicando num botão, um comando actionscript deve atribuir o valor digitado no box à propriedade alpha da instância do movie clip.

A propriedade que mostra qual o texto dentro de uma caixa de texto é text. Se a minha instância do input box se chama valor1, a expressão que guarda o texto dentro dele é valor1.text.

Bem, veja o Flash abaixo. Digite na caixa de texto um valor entre 0 e 100 e depois clique no botão preto.

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

O único código presente neste exemplo é o colocado na instância do botão preto:

Vamos ver o que este código significa.

Em primeiro lugar temos que fazer com que o botão muda seja monitorável, isto é,fazer com que, quando clicarmos nele, ele dispare um comando. Isto se faz adicionando um listener, através de um comando addListener. Um listener, em inglês significa um ouvidor, É como se houvesse alguém ‘ouvindo’ o que acontece com o botão muda e, assim que alguém o clicar, o listener avisa uma função de que ele foi clicado.

Portanto, a linha muda.addListener associa ao botão muda um listener para o evento click (teremos mais tarde uma aula especialmente voltada para eventos), que faz com que a função clicaram seja acionada.

A função clicaram atribui o valor do campo de texto à propriedade alpha do objeto cara, isto é, caso você digite 50 na caixa de texto, a carinha ficará metade opaca e metade transparente. Repare que o Flash só aceita o ponto como separador, e não a vírgula.

Neste exemplo, ao clicar no botão, o comando pega a propriedade text da caixa de texto “valor” e joga para a propriedade alpha do movie clip cara. Se você digitar 30, a carinha fica 30% opaca, se digitar 70, fica 70% opaca…

Depois de ter feito o exemplo funcionar, tente outras propriedades ligadas à movieclips.

  unidade ActionScript
altera
alpha % opacidade
x px posição na horizontal
y px posição na vertical
height px altura
width px largura
scaleX % escala (no sentido horizontal ou vertical) em relação ao objeto na library
scaleY %
rotation graus rotação

Conclusão

Você pode captar um valor de uma propriedade de um objeto e atribuir a outra propriedade de outro objeto. É assim que se pode criar várias formas de interação com o usuário: manipulando propriedades de objetos.

5. Video

Este vídeo se refere ao problema exposto, mas apresenta o código AS2. Substitua pelo código acima, AS3.

Social media & sharing icons powered by UltimatelySocial