Manipulando Símbolos – Métodos

No artigo anterior vimos como alterar propriedades (atributos) dos nossos movieclips utilizando Action Script. Agora examinaremos o uso de métodos em Action Script.

Métodos definem um conjunto de ações que serão executadas quando o método for chamado. Assim como acessamos as propriedades, podemos utilizar o caractere “.” (ponto) para acessar métodos de uma instancia. Ao contrário das propriedades, após o nome de um método devemos escrever “()” (abre e fecha parênteses), assim o flash saberá que estamos  tentando invocar um método.

Vamos a um exemplo. Vamos criar um MovieClip e aplicar um tween de rotação nele, da frame 0 a frame 60. Vamos também adicionar o comando stop(); na primeira frame do filme, conforme a figura a seguir:

Tutorial Actionscript 3 - Metodos

Figura 1 - Método stop() e Tween na timeline principal.

Vamos então executar o exemplo da figura 1. Ao ser executado, esse projeto irá permanecer parado na frame 1. O Tween que criamos não será executado. Isso ocorre por conta do comando (chamada ao método) “stop()”. Ao escrevermos “stop()” no Action Script estamos invocando um método sobre o MovieClip dono da timeline onde escrevemos o comando, e que no caso do nosso exemplo é o root.

O root é a timeline principal de um projeto, e também é um movieclip. Ao escrevermos o comando “stop()” na timeline principal e como nao especificamos nenhum alvo (o que poderiamos fazer através do operador ‘.’), o flash buscará pelo método “stop()” no root, executando-o, e fazendo com que o filme interrompa sua reprodução em sua timeline principal.

Ou seja, o mesmo principio de escopo das propriedades se aplica ao método. Ao escrevermos uma chamada a função em uma frame na timeline do root ou de um símbolo, o flash buscará por aquele método na lista de métodos do símbolo (dono da timeline) e dentre as funções que criamos.

Assim, podemos observar uma forma alternativa de invocarmos métodos, sem utilizar o caractere “.” (ponto), omitindo a instancia a qual estamos nos referindo. O flash assumirá que a instancia desejada é a que possui a timeline onde escrevemos o método.

O mesmo resultado poderia ser obtido se o Tween estivesse presente dentro do MovieClip do quadrado preto, nomeássemos este de por exemplo “quadrado”, e utilizássemos o comando “quadrado.stop();” na primeira frame da timeline principal:

Tutorial Actionscript 3 - Metodos

Figura 2 - Tween dentro do símbolo, e método stop() sendo chamado sobre a instancia do quadrado.

Nesse caso estamos especificando quem é o alvo do comando” stop()”: o movieclip de nome “quadrado”. Assim, a ação”stop()” será executada apenas sobre esse objeto, interrompendo a reprodução apenas de sua timeline.

Podemos utilizar também, o método “play()” ou “gotoAndPlay()” para iniciar a reprodução da timeline de um MovieClip. Se acrescentarmos a chamada ao método “play();” logo após a chamada ao método “stop();” em qualquer um dos exemplos anteriores, veremos que o Tween criado será reproduzido (lembrando que no segundo exemplo precisamos utilizar “quadrado.play();”).

O método “gotoAndPlay()” é um pouco diferente. Ele recebe um argumento. Argumentos definem parâmetros para os métodos que estamos invocando, eles servem para se especificar parte do comportamento do método (veja mais no artigo sobre Funções).

O método “gotoAndPlay()” recebe como argumento a frame para onde desejamos que a reprodução do filme vá. O playhead da timeline do objeto para o qual estamos invocando o “gotoAndPlay()”, será desviado para a frame que especificamos como argumento do método, e a partir dali o filme será reproduzido.

No exemplo da figura 1, se após o “stop();” adicionarmos “gotoAndPlay(30);”

stop();
gotoAndPlay(30);

veremos que o filme iniciará sua reprodução já no frame 30, ou seja, já com o quadrado inclinado.

Em aplicação reais nunca usaremos um “stop();” seguido de um “play();” ou “gotoAndPlay();”, pois não faria sentido. O propósito aqui é apenas ilustrar o uso dos comandos “stop()”, “play()” e “gotoAndPlay()”.

Para conhecer todas as propriedades e métodos das classes do Flash utilize o Help. Digite o nome da classe em qualquer lugar do código Action Script (escreva por exemplo “MovieClip”), clique com a tecla direita do mouse e clique em “View help”.

No próximo artigo discutiremos um aspecto crucial ao entendimento e utilização do Action Script para desenvolvimento de projetos em Flash: eventos. Caso tenha dúvida, sinta-se a vontade em perguntar!

Tags: , , ,

segunda-feira, junho 15th, 2009 1. Básico

4 Comentários para Manipulando Símbolos – Métodos

  • Lucio disse:

    Ótimos tutoriais!

  • Marlon disse:

    VALEU PELA AJUDA!!!
    …Realmente os seus tuto são os melhores!

  • wellington miranda disse:

    eu estou fazendo uma galeria de fotos em action script 3
    no primeiro frame tem a camada fundo(layont) e uma camada de botão e uma com o mc para as fotos carregarem

    na camada fundo estão meus botões (foto1, foto2 etc..
    no frame 1

    quero que ao clicar no movieclip mais fotos que eu criei
    ele fa para o frame 2( que tera foto11, foto12, foto13)nesse frame vai ter mais fotos de novo só que dai vai ter que ir para o frame 3(foto20,foto21,foto22)

    é só esse meu problema eu não estou conseguindo por o gotoAndStop adequadamente no meu action

    se puder me ajudar eu ficaria grato ….
    obrigado ….

  • arivanbastos disse:

    Olá Wellington,

    Sugiro que você dê uma olhada no tutorial http://www.virtualizeid.com.br/blog/2009/06/eventos/ . Ele fala sobre a criação de eventos em movieclips. Você precisa criar um evento de MouseClick no movieclip, e dentro da função que trata esse evento adicionar o “gotoAndStop();”.

    Sugiro que você também olhe o tutorial http://www.virtualizeid.com.br/blog/2009/06/carregando-imagens-externas/ . Nele mostramos como carregar imagens externas. Assim você não precisa adicionar as imagens de sua galeria no stage, carregando elas dinamicamente.

    Abraços!

  • Deixe o seu comentário

    Spam Protection by WP-SpamFree