MARLOS ALVES CARMO (90 pts)

SASHA GUDEY (235 pts)

ILVA RUDEV (90 pts)

AMAURY BENTES (123 pts)

MUZAK (45 pts)

RICARDO TAKAHASHI (180 pts)

JOTA LAGO (40 pts)

ALEXANDRE PORTO (1281 pts)

JONAS GALVEZ (521 pts)

KEN AWAMURA (130 pts)

RICARDO TEIXEIRA (40 pts)

ZECA BALA (45 pts)
Treinamento PontoFlash de Flash e ActionScript

Como retardar (delay) o início de uma apresentação em Flash?

Como fazer links dentro do bloco de texto em flash tal como no html?

Há uma propriedade para um campo de texto que impeça a digitação de caracteres repetidos?

Um preload (carregador) para carregar swf, jpg, mp3, txt, asp, php e xml.

Editor de ícones

Classe preloader para carregar mais de um SWF?

Quero que o ícone do mouse mude de forma para um gif que eu definir.

Como desenhar, simulando dinamicamente a ferramenta caneta do Flash?

Estou precisando contolar o volume de uma trilha sonora em loop em um site.

Como abrir uma janela popup dentro de um arquivo .exe?

Como carregar clipes aleatórios?

Há como referenciar um botão dinamicamente no FlashMX?

Alguém conhece integração flash no access. Não como acesso web, e sim como desing gráfico para formulários de access.

Tem alguma técnica pra eu rodar um imagem em 360º no flash?
Configurando texto via actionscript.

Pre-loader simples.

Detecção do FlashPlayer.

Número randômicos sem repetições no Flash 4.

Enviando EMAIL com ASP, COLDFUSION E PHP

Usando Define Patern para criar texturas contínuas no PhotoShop.

GetMySQLData para Flash5 (segunda parte)

Simulando 3D.

Como usar o Flash com o FrontPage?

Adicionar ao favoritos

Carregamento dinâmico de JPG e máscara por AS

Objeto Sound.
Curva elastica

Scroll over F5

3D-gradient

Cubo

Dropzoom

Plasma2D

Flying letters

Fract1

Rotação

Embaralhar texto

Move to point

Tension
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