LUIZ HERRERA (117 pts)

AUTOR DESCONHECIDO (100 pts)

PEDRO CLAUDIO (50 pts)

MUZAK (45 pts)

EDUARDO WALMOTT (226 pts)

MARLOS ALVES CARMO (90 pts)

FÁBIO DUARTE (79 pts)

MANGOOST (80 pts)

DANIELA PIRES (86 pts)

NETO LEAL (116 pts)

JONAS GALVEZ (521 pts)

MARCELO SIQUEIRA (96 pts)
Treinamento PontoFlash de Flash e ActionScript

Tem algum truque para diminuir o tamanho do meu site?

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

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

Como carregar um bitmap randomicamente, escolhido entre várias?

Eu quero que uma imagem (bitmap) abra uma janela POPUP.

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

Como carregar e posicionar dinamicamente seis JPGs?

Determinado o fim do tellTarget.

Eu queria por a minha página na net, mas em FullScreen. Mas não sei fazer isso no flash.

Erro no TellTarget.

Como fazer um objeto ter um movimento elástico?

Como faço para, ao clicar em um Botão minha animação retroceder frame a frame continuamente?

Como colocar um botão no meu site para fechar a janela do navegador?

Tô tentado abrir uma janela popup com um comando dentro de um arquivo de texto chamado via loadVariables.
Janelas tipo Windows com Swap Depth

Objeto Array: métodos sort() e reverse().

Quando usar vetor ou bitmap?

Barra de rolagem simples no Flash5.

Objeto Sound.

Preloader com máscara

Turbine seu Fireworks

Como arredondar os cantos de uma foto no Fireworks.

Novas propriedade de botões no FireworksMX

Menu infinito

Sistema de busca utilizando Flash + ASP .

Controlar movimento de uma máscara
Ball & shad

Ampulheta

Personagem animado

Lighttext

Aleatórios

Preloader simples

F5scrolltext

Arrays

Menu aberto

Drag txt

Bounce gravity glow

Raindropstrail
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