DEMIS BUCCI (50 pts)

EDUARDO CARREGA (150 pts)

AMAURY BENTES (123 pts)

MARLOS ALVES CARMO (90 pts)

IRAPUAN MARTINEZ (45 pts)

RÔMULO NUNES (32 pts)

GUILHERME SCHEIBE (49 pts)

NETO LEAL (116 pts)

LUI FERNANDO (151 pts)

ILVA RUDEV (90 pts)

RODRIGO AMARAL (56 pts)

GUILHERME G.G. (137 pts)
Treinamento PontoFlash de Flash e ActionScript

Preciso fazer o "play" ao contrario, ou seja voltar do último para o primeiro frame.

Como faço para checar se os campos de um formulário foram preenchidos?

Como eu altero o conteúdo de um campo de texto por um botão?

Como exportar/importar somente algumas variáveis da timeline principal?

Como coloco uma senha no Flash?

Preciso de formulário usando HTML + ASP + Acess.

Qual é a melhor maneira de transformar MP3 para Wav? E qual é a melhor de usar?

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

Como fazer uma validação para verificar se num campo de entrada foi digitado um número ou não?

Como faço para alternar movieclips invisíveis e na mesma hora começar a rodar.

Problemas com actions condicionais.

Eu estou usando para toolTip um código simples usando o método createTextField.

Como se faz o efeito de aumentar a janela popup do site www.tribal.com.br?

Como faço para validar data de nascimento num formulário?
Máscara percorrendo um caminho.

Abrir PopUp no Flash com JS e ASP.

Bookmak (Adicionar a favoritos).

Entendendo como funciona um preloader. Primeira parte.

Shared object.

Criando um objeto para sua paleta personalizada (NINJA)

Mascara animada no Flash MX

Comunicação Flash-PHp-MySql - introdução

Load Movie into target (movieclip).

Preloader com máscara

Limitar por IP? Porque não utilizar o Shared Object do Flash?

Flash MX 2004 Updater
Slicemenu

Menu abre pasta

Luz

Bspline1

Control Sound

Spyral draw

Drag gravity

Scroll text2

Cronômetro

Vela

Máscara simples

Email com ASP
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