AUTOR DESCONHECIDO (100 pts)

ZEBEDIAH (35 pts)

NILTON BICALHO (61 pts)

GUILHERME SCHEIBE (49 pts)

ÉMERSON ROCHA (85 pts)

AMAURY BENTES (123 pts)

ILVA RUDEV (90 pts)

EDUARDO WALMOTT (226 pts)

JOÃO NETO (78 pts)

SASHA GUDEY (235 pts)

LEANDRO AMANO (83 pts)

PEDRO CLAUDIO (50 pts)
Treinamento PontoFlash de Flash e ActionScript

Como alterar duas propriedades de um objeto num só evento de um botão?

Preciso criar um formulário de envio de dados, juntamente com um arquivo em anexo.

Quero que no fim de uma animação de um movieclip, o filme vá para frames aleatórios.

Por que o "&" retorna erro num texto importado no flash?

É possível criar uma variável de outra variável?

Função chamada createFunctionCall, que permite criar uma função para executar uma outra função com certos parâmetros.

Como fazer para um movie clip desacelerar em direção ao outro.

Como fazer um objeto se movimentar pelo teclado (UP, DOWN, Left e Rigth)?

Como posso fazer uma validação de CPF?

Que variáveis eu poderia usar para uma pergunta com 4 alternativas e uma só é correta.

Como eu defino a posição de um swf através do comando Load movie?

Um movie que está no _level0 pode ler uma variável que está no _level1 repetidamente?

Como pegar no flash, variaveis vindas de uma URL "site.jsp?var=valor&var2=valor2"?

Como transformar a data 10/01/2002 em 10 de janeiro de 2002?
Enviando variáveis do Flash para ASP.

Componente Slideshow

Integrando o Flash com Tecnologias Externas.

Sistema de newsletter utilizando Flash + ASP

Flash MX 2004 - class e prototype

Dicas para otimizar seu SWF (revisado e atualizado).

Detecção do FlashPlayer.

Alterando Artistic Media no Corel Draw

Máscara

Imagens transparentes usando PhotoShop, Fireworks e Flash.

AttachSound.

Blend - Fireworks
Rastro com texto

Um por vez

Hitest eat

Passagens

Logos caindo

3dsimmoufollow

Keycode

Set focus

Random

Frame navegação

Arrow

Hit test
HOME | TUTORIAIS
Botão dinâmico via Action Script.
por Marcos José Pinto

Nota do autor: Para acompanhar sem problemas este tutorial é aconselhável ter algum conhecimento básico sobre Action Script, saber criar Movie Clips, nomear suas instâncias e criar botões.

Quando queremos criar um botão e aplicar ao mesmo algum tipo de animação, costumamos apelar para a duplicação de um Movie Clip que contenha um botão. Em cada cópia, modificamos o texto do botão e o comando associado ao evento, um a um.

Funciona, mas para que tanto trabalho se podemos colocar o bom e novo Action Script para trabalhar para nós?

A idéia que apresento aqui é um botão-faz-tudo. Tendo apenas uma cópia do objeto em sua biblioteca, você poderá utilizá-la indefinidas vezes. Para isso, basta acrescentar no script uma condição para cada instância do botão, cujo texto será obtido a partir do nome de instância.

Este botão foi utilizado no site www.compuland.com.br/marcosjp. Eu queria animar os botões, fazendo-os sair de dentro da nave e descer até à base da tela. A maneira mais simples e menos trabalhosa de fazer isso foi a utilização de texto e comandos dinâmicos para definir todos os botões, inclusive do que retorna à animação inicial a partir da "sala dos livros".

Chega de conversa e vamos ao exemplo. No filme acima você vê três botões, cada um com seu texto e cada um com uma função distinta. Os três botões, na verdade, são três instâncias de um Movie Clip.

Montagem do movie-clip-botão.

1. Crie um novo símbolo, marque seu comportamento (behavior) como Movie Clip e, em seu modo de edição, crie as camadas controle, campo e botão.

2. Na camada controle, insira a ação mostrada abaixo.

this.legenda = this._name;

Esta linha cria a variável legenda dentro da instância do Movie Clip (variável local), representada por this, e armazena nesta variável o nome da instância atual do Movie Clip, através da propriedade _name. Repare que há um ponto entre this e os identificadores de variável e propriedade.


figura 1

3. Na camada campo, crie um campo dinâmico associado à variável legenda.

É importante que esta camada fique por cima da camada onde colocaremos o botão, pois o campo dinâmico conterá o texto que definirá a legenda do botão.

4. Na camada botão, coloque o botão (dã!). A figura 1 mostra a estrutura do Movie Clip.

Montagem de um Movie Clip auxiliar.

Para exemplificar o funcionamento dos botões, criei um Movie Clip simples que contém o texto apresentado quando os botões são acionados. Dei lhe o nome de instância "ClipTexto".

1. Crie um novo Movie Clip e, em sua área de edição, crie as camadas ação e texto.


figura 2

2. No primeiro quadro da camada ação, insira uma ação stop ();.

3. Na camada texto, insira keyframes nos quadros 2, 3 e 4.

4. Insira os blocos de texto estático Primeiro, Segundo e Terceiro, colocando-os, respectivamente, nos quadros 2, 3 e 4.


figura 3

A figura 3 mostra a estrutura deste Movie Clip.

Definição do script do botão

A partir do momento em que passamos a lidar com programação, não há uma única maneira "correta" de atingir nossos resultados, mas muitas maneiras possíveis. Então, para ilustrar isto, criei duas versões que fazem exatamente a mesma coisa. A primeira versão é mais óbvia e mais trabalhosa. A segunda é um pouquinho menos óbvia e infinitamente mais simples. Vamos começar pela mais trabalhosa.

Solução com lógica de decisão

Insira o script abaixo no evento do botão:

on (release) {
   if (legenda eq "Primeiro") {
      _root.ClipTexto.gotoAndStop(2);
   } else if (legenda eq "Segundo") {
      _root.ClipTexto.gotoAndStop(3);
   } else if (legenda eq "Terceiro") {
      _root.ClipTexto.gotoAndStop(4);
   }
}

Com este script, ao ser acionado o botão, uma estrutura IF...THEN...ELSE (SE... ENTÃO...SENÃO) testa o conteúdo da variável legenda. Como você viu no início deste tutorial, tal variável recebe o nome da instância do Movie Clip em questão.

Então, na primeira linha do IF, temos

if (legenda eq "Primeiro") {
   _root.ClipTexto.gotoAndStop(2);

Ou seja, se o conteúdo da variável legenda for igual a "Primeiro", a ação subordinada jogará o Movie Clip ClipTexto para o segundo quadro, onde sabemos que se encontra a palavra Primeiro.

As duas linhas seguintes funcionam de maneira análoga. Como você já deve ter percebido, esta solução exige uma nova linha else if para cada novo botão. Então, se forem 15 botões, teremos 15 níveis na estrutura IF. Funciona, mas é muito trabalhoso, o código fica bem grande e confuso e, pior, tudo isto acrescenta alguns bytes ao tamanho do seu SWF. Podemos adotar uma outra solução, bem mais simples e direta - e muito menor. Veja a seguir.

Solução com ação direta por rótulo

Nesta solução vamos usar rótulos no lugar de nomes de quadros para fazer o direcionamento. Só essa mudança já nos permite criar um script absurdamente mais simples. Vejamos porque.

1. Entre na área de edição do Movie Clip que contém os blocos de texto estático.

2. Insira keyframes (quadros-chave) nos quadros 2, 3 e 4 da camada ação.

3. Identifique os rótulos destes quadros com as palavras Primeiro, Segundo e Terceiro, respectivamente.

4. Volte à área de edição do Movie Clip do botão e edite o script. Apague todo o script lá inserido anteriormente (melhor gravar uma cópia antes, para referência).

5. No lugar do script anterior, digite esta única ação:

on (release) {
   _root.ClipTexto.gotoAndStop(Legenda);
}

E é só!!!

Como funciona? Simples: no lugar do número de quadro utilizado no exemplo anterior, o método gotoAndStop utiliza como argumento o conteúdo da variável legenda que, por sua vez, contém o nome da instância do Movie Clip em questão. Assim, o botão que se encontra dentro do Movie Clip Primeiro, por exemplo, enviará a linha do tempo do Movie Clip ClipTexto para o quadro cujo rótulo tenha nome correspondente, ou seja, Primeiro. Com esta solução, cada novo botão inserido deverá ter seu nome de instância relacionado a um rótulo. E mesmo que você precise usar cinqüenta cópias do Movie Clip, o script não precisará sofrer qualquer alteração.

Montagem da cena de teste

Para comprovar o funcionamento deste botão dinâmico, veja como montar a cena:

1. Disponha os três botões na cena como desejar.

2. Nomeie suas instâncias como Primeiro, Segundo e Terceiro.

3. Coloque na cena uma instância do Movie Clip que contém os blocos de texto. Como o primeiro quadro deste Movie Clip não contém qualquer elemento, o Movie Clip aparecerá na cena, apenas no modo de edição, como um ponto branco.

4. Selecione o Movie Clip e nomeie sua instância como ClipTexto

.
figura 4

Agora você já pode rodar o filme e experimentar os botões.

Sugestão: Neste exercício você usou um Movie Clip contendo blocos de texto apenas para testar as ações dos botões. Contudo, se esta for a única intenção de um filme, no lugar dos três blocos de texto você poderá colocar um único campo dinâmico, que receberá o texto da variável legenda, ou mesmo diretamente do nome de instância, com a propriedade _name. Como você pode ver, sempre há espaço para modificações e, o que é melhor, simplificações. Até a próxima!

Faça o download dos exemplos.



Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados
1 comentário


Comentário de washington
| 16/11/2011 - 01:55 |


penso que voce pode me ajudar! gostaria de saber como faço pra criar um input box, e um botao e uma caixa dynamica, e quando eu colocar um valor na input box e aperta no botao, a caixa dinamica mostre um as variaveis que tenho em um texo.txt ex: se escrevo 1, me mostre o conteudo da variavel que esta no texto.txt &1=bla bla bla. sei que é possivel voce pode me ajudar? sim no texto.txt nao tem só numeros. naples_usa@hotmail.com