PEDRO CLAUDIO (50 pts)

ALEXANDRE PORTO (1281 pts)

NILTON BICALHO (61 pts)

DAAFY (55 pts)

FÁBIO DUARTE (79 pts)

STICKMAN (155 pts)

NETO LEAL (116 pts)

DEMIS BUCCI (50 pts)

AMAURY BENTES (123 pts)

MUZAK (45 pts)

RODRIGO AMARAL (56 pts)

DAUTON JANOTA (255 pts)
Treinamento PontoFlash de Flash e ActionScript

Quero fazer uma função que duplique movieclips e defina suas propiedades.

Como transformar uma animação da timeline em um movie clip?

Como arrastar um objeto somente na horizontal?

Como enviar e receber variáveis do flash para o PHP utilizando LoadVars?

Como eu abro uma janela popup de uma tag HTML em um arquivo .txt importado com load variables?

Como carregar arquivos externos (imagens, por exemplo) dentro do FlashMX?

Como faço para concatenar uma variável e uma String? Com eval?

Queria usar no meu formulário o CGI de outro domínio.

Queria que minha página em HTML tivesse aquele script de data e hora.

Como faço pra chamar uma página HTML dentro de um quadro no flash?

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

Como faço para carregar randomicamente imagens com um botão sem repetilas?

Erro no TellTarget.

No Flash tem uns gradientes pré definidos: como eu faço para edita-los (inserir ou alterar)?
Alinhamento de objetos no Corel Draw

Sistema de newsletter utilizando Flash + ASP.

Formulário simples.

Load Movie no FlashMX (swf, jpg e mp3).

Sala de bate papo (chat) , com Flash+PHP

Controle de som no Flash 5.

Gerenciando camadas no CorelDraw

Tratamento de imagens e alguns efeitos no Fireworks

Jogo de colorir.

Movimentar MC com barra de rolagem e setas

Scroll Text.

Integração Flash + Fireworks
ICQ

Statusload

Matrix text

Rolltext com mask

River ride

Preloader avançado

Toca fita

Coordenadas

Cursor customizado relativo

Drag simples

Motionblur

Hover buttons
HOME | TUTORIAIS
Linha que segue o mouse.
por Stickman

Navegando por sites feitos em Flash, encontrei o Infinovation, onde vi esse efeito esperto. Levei algum tempo para entender como foi feito (até que percebi que ele usa escala para desenhar a linha - é óbvio quando você já sacou!).

Minha versão original era uma bagunça total mas, depois de brincar um pouco com Duplicate Movie Clip em outro projeto, percebi que podia ser muito mais simples. Depois disso soube que o original também foi feito dessa maneira.

Parece bem simples...

Não é exatamente engenharia de foguetes, mas são usados aqui alguns truques espertos que podem não saltar aos olhos quando você olha pela primeira vez. Vou explicar melhor...

As partes fáceis

Bom, antes de mais nada, você precisa entender do que se trata. Uma vez por frame, estamos lendo as coordenadas do mouse e desenhando uma linha a partir do ponto onde ele estava no último frame até onde ele está agora (e deixando um rastro de "velhas linhas" que gradualmente desaparecem). Se você não sabe ainda, podemos achar as coordenadas do mouse criando um movie clip vazio (aqui chamado tracker), colocando-o na linha do tempo principal e acrescentando a seguinte ação ao primeiro frame:

Start Drag ("/tracker", lockcenter)

Agora, podemos usar GetProperty para achar os valores x e y de /tracker e assim teremos as coordenadas do mouse. Como quase sempre acontece, a maior parte do trabalho é feita num movie clip de controle. Este é programado para fazer um loop em cada frame e, em cada frame, ele executa uma série de ações que faz a detecção do mouse e o desenho da linha. Você vai encontrar essas ações no primeiro frame do movie clip "control".

Fazendo a linha

Essa é, na minha opinião, a parte mais inteligente da coisa toda. Você não pode simplesmente mandar o Flash "desenhar uma linha do ponto A ao ponto B". Por isso, aqui se usa um truquezinho sutil com a escala. Você cria uma linha que está a 45° (chamada Line) e cuja altura e comprimento é de exatamente 100 pixels. Coloca-a a na linha do tempo principal e lhe dá um nome de instância. Detectando as coordenadas do mouse (usando o método descrito acima) podemos colocar uma duplicata desse movie clip na "antiga" posição do mouse (que está armazenada nas variáveis /:OldX e /:OldY) e escalá-la nas direções X e Y pela diferença entre as velhas coordenadas e as novas (NewX e NewY). As ações ficarão assim:

Set Variable: "Line" = "NewLine"&/:Counter
Duplicate Movie Clip ("/Line", Line, /:Counter)
Set Variable: "Line" = "/"&Line
Set Variable: "NewX" = GetProperty ("/tracker",_x)
Set Variable: "NewY" = GetProperty ("/tracker",_y)
Set Property (Line, X Position) = /:OldX
Set Property (Line, Y Position) = /:OldY
Set Property (Line, X Scale) = NewX-/:OldX
Set Property (Line, Y Scale) = NewY-/:OldY

A primeira linha simplesmente cria uma variável com o nome da linha que estamos para criar - NewLine mais o valor atual do contador, que cresce de um em um a cada loop do movie clip. Depois usamos Duplicate Movie Clip para criar uma nova cópia da nossa linha, usando Counter como o valor de Depth (cada cópia da nossa linha precisa estar numa profundidade diferente de camada como as camadas num Flash movie). Então acrescentamos um '/' no início do nome de nossa nova linha e usamos GetProperty para achar as novas coordenadas do mouse. As quatro linhas finais dão as posições x e y do movie clip da nossa nova linha e define sua escala X para NewX-/:OldX e sua escala Y para NewY-/:OldY.

Simples, mas...

Bobinho que sou, pensei que era necessário usar algum truque especial de escala para criar uma linha que não ficasse mais grossa quando você a escalasse. No entanto, Dan Wright (obrigado, Dan!) me mostrou que você pode conseguir o mesmo resultado com uma hairline. Dei mole...

Grande coisa... Então é isso. Para fazer tudo funcionar, é preciso que você saiba umas coisinhas a mais, mas vou deixá-lo brincar com o arquivo .fla e descobrir por si mesmo - não há nada muito complicado.

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