LUIZ AVANCI (51 pts)

LEANDRO AMANO (83 pts)

RODRIGO AMARAL (56 pts)

PEDRO CLAUDIO (50 pts)

GÉRIO (93 pts)

MAURO ROCHA TAVARES (40 pts)

RICARDO TEIXEIRA (40 pts)

DAUTON JANOTA (255 pts)

NETO LEAL (116 pts)

MANGOOST (80 pts)

JOTA LAGO (40 pts)

STICKMAN (155 pts)
Treinamento PontoFlash de Flash e ActionScript

Como otimizar um filme no Flash?

Tenho um arquivo .exe e gostaria que este ao ser executado, preencha a tela toda em fullscreen.

Como adicionar um site aos favoritos num botão do Flash?

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

Como importar caracteres especiais para o Flash? Usando URL Encoding?

Como fazer a rotação de um movieclip aumentar indefinidamente.

Como faço pra adicionar uma site a meus favoritos via actionscript?

Alguém conhece o software para criar chat do tipo batepapo.com.br (ou empresa que tenha)

Como fazer um cronômetro regressivo, com botão pause, stop e play.

Uma instrução de um movieclip para a timeline principal não funciona.

Problemas para visualizar o site no MAC?

O que é e para que serve o método getBounds()?

Alguém poderia me dar uma dica do que seria o Generator?

Tem como alinhar objetos em frames diferentes de uma vez só?
Looping.

Máscara percorrendo um caminho.

Máscara com gradiente.

Formatação Encoded e Decoded

LocalConnection

Envio de email via formulário utilizando Flash + ASP.

Scroll - Rolagem de textos e Imagens

Grade sonora.

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

Cadastro de usuários, com Flash+ASP

Ilustrando com effects e gradientes no Fireworks

Jogo da Forca
Texto com degrade

Menu dinâmico

Cofre mask

Cursor

Txt com preloader

Rastro Luis

Combobox com interação em ASP

Texto esticado

Page Flip

Menu folder

Loop menu

Combobox
HOME | TUTORIAIS
Alternando janelas no Flash.
por Stickman

Clique nas janelas para mudar sua ordem.

Há algum tempo atrás, alguém perguntou se seria possível ter janelas que "mudassem de camada", como num desktop do Windows (ou MacOS, or qualquer outro... :0)). Dei uma idéia que utiliza Duplicate/Remove Movie Clip, mas na mesma hora fui à luta de fazer um demo.

Mas isso é fácil, né?

Você pode achar que sim, mas na verdade é mais difícil do que parece. Num mundo ideal, você usaria SetProperty para especificar a profundidade do movie clip, mas infelizmente, em nossa existência atribulada e confusa, poucas coisas são tão fáceis como deveriam - você não pode especificar a profundidade de um movie clip depois de criado (isto é, ou outros objetos estão "na frente" ou "por trás" dele).

Ok, espertinho, então nos mostre como se faz...

Embora você não possa modificar a profundidade de um movie clip já criado, você pode alterá-la quando usa Duplicate Movie Clip. Então a idéia é: criar nossas janelas usando Duplicate Movie Clip e, se precisamos trazer para frente uma das de trás, apenas usamos Remove Movie Clip para nos livrar delas e então as refazemos usando Duplicate Movie Clip novamente, numa ordem diferente.

Ã?

Vamos passo a passo.

Primeiro, criamos nossas quatro janelas originais e damos a elas Instance Names (window1 a window4), mas as ocultamos fora da área visível do palco. Agora no primeiro frame de nosso Movie Clip usamos um rápido loop para criar cópias delas em lugar onde possamos vê-las.

Esse código cria quatro novas janelas visíveis (NewWin1 a NewWin4) que as que aparecem na tela. Veja como definimos a profundidade (que é a propriedade que decide a ordem em que os objetos aparecem): NewWin1 tem o maior valor de profundidade, pois isso vai fazer com que ela apareça por cima das outras. Objetos com valores de profundidade maiores aparecem "na frente" de objetos com valores de profundidade menores.

Veja também que estamos criando uma "array", WindowOrder1 a WindowOrder4, e o valor de cada uma é um número representando a ordem das janelas. Isso vai ser usado mais tarde, na hora de recalcular a ordem das janelas.

Código da destruição

O que precisamos saber é fazer com que, quando um usuário clica numa janela, ela é "trazida para a frente" e as outras "levadas para trás", como se pegássemos uma carta do baralho e a colocássemos no topo. Isso requer um código mutreta...

Primeiro, precisamos designar para cada janela um botão invisível. Quando você clica nesse botão ele define uma variável (/:NewTop) para o número de qualquer das janelas que tenha sido clicada. Então ele usa Call ("/control:Redraw") para executar uma série de ações contidas no frame dois de um filme de controle (chamado contrle) na linha de tempo principal.

A primeira série de ações nesse movie clip copia todos os valores do "array" WindowOrder para uma "array" temporário (TempWinOrder) à qual podemos nos remeter mais tarde. Então determinamos que /:WindowOrder1 seja igual a /:NewTop. Teremos então outro loop que passa por cada um dos valores do "array" TempWinOrder (que armazena a "velha" ordem das janelas): ele verifica se cada valor é igual a /:WindowOrder1 (ou seja, se é o mesmo da nova janela principal) e se não for, copia o valor adequado em /:WindowOrder.

Dá pra explicar de novo?

Por exemplo, vamos imaginar que as janelas estejam na ordem 1234 (ou seja, /:WindowOrder1 = 1, /:WindowOrder2 = 2, /:WindowOrder3 = 3, /:WindowOrder4 = 4) e que o usuário clica em /NewWin3. Primeiro, o valor de /:NewTop é modificado para 3. Então copiamos /:WindowOrder para TempWinOrder. /:WindowOrder1 recebe o mesmo valor de /:NewTop (ou seja, 3).

Finalmente fazemos um loop pelos valores de TempWinOrder, verificando se são iguais a /:NewTop (nesse caso, 3):

TempWinOrder1 = 1, então /:WindowOrder2 é definido como 1;
TempWinOrder2 = 2, então /:WindowOrder3 é definido como 2;
TempWinOrder3 = 3, então saltamos para a próxima ação do loop;
TempWinOrder4 = 4, então /:WindowOrder4 é definido como 4.

O resultado é que a ordem das janelas foi trocada de '1234' para '3124'.

Uau!

Agora só resta usar Remove Movie Clip para deletar as velhas janelas e finalmente refazê-las (com Duplicate Movie Clip), usando /:WindowOrder para dizer que janela está em que Profundidade.

Agora parece muito mais complicado do que realmente e (e provavelmente existe uma forma muito mais elegante de chegar ao mesmo resultado, mas tive que fazê-la o mais simples possível para que meu pobre cerebrozinho pudesse lidar com ela!). Dê uma olhada nas ações em /control:Redraw e tudo vai fazer mais sentido.

Cuidado com a armadilha!

Um detalhe que você não pode esquecer é que quando você duplica um movie clip, ele vai 'resetar' para seu primeiro frame. Então, se você precisa conservar qualquer modificação que o usuário tenha feito naquele filme, você precisa armazená-las em variáveis de alguma forma e reaplicá-las quando refizer a janela.

Boa sorte! Stickman

Copyright de todos os arquivos e textos de ©Stickman 1998 - 2000. Sobre copyright, termos de uso e informações, por favor visite www.the-stickman.com/terms.

Baixe aqui o arquivo FLA desse tutorial.



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
0 comentário