O documento descreve a evolução do ActionScript ao longo das versões do Adobe Flash, desde sua introdução como uma linguagem de programação orientada a objetos no Flash MX até se tornar similar ao JavaScript. Também fornece exemplos básicos de comandos de ActionScript como gotoAndPlay() e stopDrag().
1. Breve histórico do ActionScript
Quando veio ao mercado, o Flash 2, possuía poucos recursos de programação
disponíveis. Já no Flash 3, aplicações diferenciadas eram obtidas através da integração
do Flash + JavaScript. Quando chegou ao mercado, o Flash 4 apresentou uma
quantidade maior de scripts, mas não era ainda propriamente o consagrado
ActionScript, as ações do Flash eram simplesmente chamadas de Actions.
O Flash 5.0 trouxe o conceito de ActionScript, mas somente no Flash MX que
realmente tornou-se uma linguagem de programação realmente orientada a objetos,
robusta e inteligente.
Com o auxílio do ActionScript é possível construir scripts eficientes através de
componentes de códigos, redefinindo e/ou acrescentando funcionalidades ao
ActionScript.
O padrão que o ActionScript segue é o mesmo do JavaScript (ECMA 262), por isso as
duas linguagens são tão parecidas.
No mais, ActionScript é uma linguagem de programação que torna possível
proporcionar encanto aos espectadores do conteúdo de seu filme Flash....
Quer aprendê-la? Então vamos lá:
Filmes interativos
Para criar filmes interativos no Flash MX, você deverá utilizar o conjunto de scripts
chamado ActionScript para designar ações. Essas ações são executadas quando ocorre
determinado evento específico no filme, por exemplo, clicar em um botão. Quando o
usuário clica no botão necessariamente são executadas as ações pré-definidas para
esse botão e disparados eventos e/ou comportamentos no filme. Os scripts devem ser
escritos no painel Ações, as ações podem ser para um botão, quadro ou clipe de filme.
Este painel oferece uma interface chamada Modo Normal, onde é possível inserir ações
básicas, sem ter conhecimento profundo em ActionScript, ou Modo especialista onde
você cria seu conjunto de instruções. Essas ações podem ser escritas de maneira
única, por exemplo, para informar que em determinado momento a qualidade do filme
irá mudar, ou escritas em série e conter declarações de condições, cálculos, etc. Muitas
ações são simples e de fácil compreensão, no entanto, existem seqüências de scripts
mais complexas e que possibilitam recursos quase que “mágicos”, é claro que para isso
será preciso estudar a fundo a linguagem ActionScript 2.0 e conhecer seus artifícios.
Listarei abaixo os scripts fundamentais e de fácil compreensão para iniciantes:
gotoAndPlay
Como deve ser usado: gotoAndPlay (cena, frame); onde cena é o nome da cena
para onde a reprodução será enviada, e frame é o número do frame para qual o filme
será enviado.
Descrição básica desse script: envia a reprodução para o quadro determinado e
reproduz a partir desse quadro.
Exemplo:
1. on (release) {
2. gotoAndPlay (“index”, 10);
3. }
Quando o usuário clicar em um botão com essa action o filme será reproduzido na
cena index a partir do frame 10.
2. gotoAndStop
Como deve ser usado: gotoAndStop (cena, frame); onde cena é o nome da cena
para onde a reprodução será enviada, e frame é o número do quadro para qual o filme
será enviado.
Descrição básica desse script: envia a reprodução para o quadro determinado e a
interrompe, se não for determinada uma cena, a reprodução segue para o quadro
especificado na cena atual.
Exemplo:
1. on (release) {
2. gotoAndStop (10);
3. }
Quando o usuário clicar no botão que contém essa action o filme irá para o quadro 10
da cena atual (como dito quando a cena não é determinada), e interrompe a
reprodução.
nextFrame
Como de vê ser usado: nextFrame ( )
Descrição básica desse script: Envia a reprodução para o próximo quadro e a encerra.
Exemplo:
1. on (release) {
2. nextFrame ( );
3. }
nextScene
Como deve ser usado: nextScene ( )
Descrição básica desse script: envia a reprodução para o Quadro 1 da próxima cena e
faz uma interrupção.
Exemplo:
1. on (release) {
2. nextScene ( );
3. }
No exemplo acima quando o usuário clica no botão, a reprodução é enviada para o
Quadro 1 da próxima cena.
prevScene
Como deve ser usado: prevScene ( )
Descrição básica desse script: envia a reprodução para o Quadro 1 da cena anterior e
faz uma ininterrupção…
Exemplo:
1. on (release) {
2. prevScene ( );
3. }
No exemplo acima quando a ação é executada, a reprodução é enviada para o Quadro
1 da cena anterior.
3. play
Como deve ser usado:play ( )
Descrição básica desse script: Faz com que a reprodução do filme vá para frente na
linha do tempo.
Exemplo:
1. on (release) {
2. if (nome.text == "Reuel") {
3. play ();
4. }
5. else {
6. getURL("javascript:alert('Opa! Você não é o Reuel')");
7. }
8. }
Note que o código acima apresenta o if para verificar o valor de um nome que o
usuário escreve. Se o usuário escrever “Danilo” a ação play é executada e o filme
move-se na linha de tempo. Se o usuário inserir qualquer valor diferente de “Danilo” o
filme não é reproduzido e um campo de texto com o nome de variável alert é exibido.
stop
Como deve ser usado: stop ( )
Descrição básica desse script: Encerra a reprodução do filme na linha de tempo. O uso
mais comum dessa action é controlar clipes de filme com botões, assim, é amplamente
utilizado.
stopAllSounds
Como deve ser usado: stopAllSounds();
Descrição básica desse script: é muito comum a utilização de sons nos .swf´s, para
complementar o trabalho visual. Mais importante do que usar algum som é dar a
possibilidade do usuário parar a reprodução do som dentro do site, e aí é que entra
essa action. Lembro que esse script interrompe a reprodução de todos os sons que
estão sendo executados no filme. Sons definidos como 'em streaming' voltarão a ser
reproduzidos quando a reprodução for movida sobre os quadros em que se encontram.
Exemplo:
1. on(release){
2. stopAllSounds();
4. 3. }
startDrag
Como deve ser usado: startDrag(destino,[bloqueio,esquerdo,superior,direito,inferior])
Explicando os parâmetros:
destino: é o caminho de destino do clipe de filme a ser arrastado.
bloqueio: é um valor booleano (pode se true ou false) que especifica se o clipe de filme
está bloqueado no centro da posição do mouse(true) ou no ponto onde o usuário clicou
pela primeira vez no clipe de filme(false). Vale lembrar que este parâmetro é opcional
esquerdo,superior,direito,inferior: são valores relativos às coordenadas do "pai" do
clipe de filme que especificam um retângulo de restrição para o clipe de filme. Esses
parâmetros também são opcionais.
Descrição básica desse script: É utilizado para possibilitar que clipes de filme possam
ser arrastados pelo usuário e localizados em qualquer local do palco.
Deve ser usado em conjunto com a action stopDrag, para dar opção de parar de
arrastar o MC.
Exemplo:
1. on(press){
2. startDrag(this,true);
3. }
4. on(release){
5. stopDrag();
6. }
7. /* Assim, ao pressionar o botão do mouse sobre o MovieClip em questão o
usuário poderá arrastá-lo e
8. quando soltar o botão poderá parar de arrastá-lo.*/
StopDrag
Como deve ser usado:
stopDrag();
Descrição básica desse script: como dito anteriormente, encerra a operação de arraste
em andamento.Usado em conjunto com startDrag.
Exemplo:
1. on(press){
2. startDrag("mc");
3. }
4. on(release){
5. stopDrag();
6. }
fscommand
Como deve ser usado: fscommand("comando","parâmetros")
Descrição básica desse script: Permite que o filme .swf se comunique com o
FlashPlayer ou com o programa que hospeda o Flash Player, como um navegador Web,
por exemplo . Pode-se também usar o 'fscommand' para passar mensagens para o
Macromedia Director, Visual Basic,Visual C++ e outros programas que possam
hospedar controles do tipo ActiveX.
Explicando os parâmetros: "comando"(command) é uma sequência de caracteres
passada ao aplicativo host para qualquer uso ou um comando passado ao Flash Player
independente.
5. "parâmetros'(parameters) é também uma sequência de caracteres passada ao
aplicativo host para possibilitar qualquer uso ou um valor passado ao Flash Player.
Para enviar mensagens ao Flash Player, você deve usar comandos e parâmetros pré-
definidos, Abaixo veja os valores que podem ser definidos para os parâmetros
"comando"('command') e "parâmetros" ('parameters')da ação fscommand
quit: não possui nenhum parâmetro , objetivo: fechar o projetor do filme.
fullscreen: parâmetros podem ser(true) ou (false), objetivo: true define o Flash Player
na tela cheia e false faz o exibidor voltar à exibição de menu normal.
allowscale: parâmetros(true) ou (false): true força o filme a ser escalado para 100%
do exibidor, já (false) define que o filme será sempre exibido em seu tamanho original.
showmenu: parâmetros (true) ou (false): true ativa o conjunto completo de itens do
menu de contexto e false torna esmaecidos todos os intens do menu.
exec: (o parâmetro deve ser o caminho para o aplicativo),executa um aplicativo no
projetor
trapallKEys: parâmetros (true) ou (false): se especificado true todos os eventos de
teclas serão enviadas para onClipEvent (KeyDown/KeyUP) no flash player.
Exemplo básico de utilização de fcommand:
1. on(release){
2. fscommand("fullscreen",true);
3. }
4. /*Quando o botão for liberado o Flash Player determinará que o filme se ajuste
a toda a tela do
5. monitor.*/
** Existem possibilidades de recursos avançados para esse script, com o tempo vocês
vão perceber que é interessante enviar uma mensagem para uma linguagem de script,
como por exemplo JavaScript em um navegador web, e para isso faz-se uso da
fscommand.
Penso que não é uma action tão básica, mas como também é importante citar outros
poderes das actions, me ocorreu comentar, em momento oportuno abordarei
detalhadamente a fscommand e suas
usabilidades,por enquanto vamos nos ater ao mais simples.
loadMovie
Como deve ser usado: loadMovie("url",nível/destino)
Parâmetros:
url: é o URL do arquivo que deve ser carregado (.swf,jpeg,etc)
nível/destino: destino é um caminho para um clipe de filme de destino, onde o clipe de
filme de destino será substituído pelo filme ou imagem carregada.É necessário
especificar um clipe de filme de destino ou um nível do filme de destino, porém não é
possí vel especificar o dois;
nível:é um múmero inteiro que específica o nível que o filme foi carregado no Flash
Player.
Exemplo: O comando loadMovie a seguir é anexado a um botão chamado Produtos. Há
um filme clipe de filme invisível no palco com o nome de instância filmeraiz. A ação
loadMovie usa este clipe de filme como parâmetro de destino para carregar o
produtos.swf no arquivo .swf root na posição correta no palco.
1. on (release){
2. loadMovie ("produtos.swf",_root.filmeraiz);
3. }
6. unloadMovie:
Como deve ser usado: unloadMovie(nível/destino)
Descrição básica desse script: Remove um filme carregado ou remove um clipe filme
do Flash player, para descarregar um filme que tenha sido carregado em um nível do
Flash Player use o parâmetro
nível. Para descarregar um clipe de filme carregado, use o parâmetro destino.
Exemplo: O exemplo a seguir descarrega o clipe de filme michelle_mc na linha do
tempo e carrega o filme isabella.swf no nível 5
1. on (press){
2. unloadMovie("_root.michelle_mc")
3. loadMovieNum("isabella.swf",5)
4. }