Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Graciotti

Modificação da forma de um MC através de Actionscript

Recommended Posts

Olá

 

Estou querendo fazer um menu daquele tipo onde bolinhas ficam presas por um fio (balançando lentamente pra cima e para baixo), e quando clicadas, elas movem-se para o outro canto da tela e crescem de tamanho (dentro aparecerá o conteúdo de cada seção).

 

Num outro fórum o cara me recomendou instalar um componente para tweening através de actionscript (nesse site: http://laco.wz.cz/tween/?page=download). E então usar esses códigos:

 

#include "lmc_tween.as"

 

Para fazer o MovieClip deslizar até as coordenadas que você deseja:

seu_mc.slideTo(valor de x, valor de y);

 

Para fazer ele crescer:

seu_mc.scaleto(valor da escala);

 

Funcionou xuxu beleza, só q preciso de um jeito de esticar o fio que balança as bolinhas junto. OU seja, preciso também de um código para que o fio estique junto e acompanhe o movimento da bolinha.

NO meu caso, o código ficou assim (tenho um movieclipe chamado "bola" com o elemento "fio" e o elemento "bolinha"):

 

#include "lmc_tween.as"

bola.onRelease = function(){

bola.stop();

bola.bolinha.slideTo (300,30);

bola.bolinha.scaleTo (500);

}

Esse código controla a bolinha certinho, mas o q faço para controlar o fio? (se ficou dificil de entender, posso colocar o meu fla de exemplo).

 

 

Pensando melhor, mais fácil eu ja mandar o .fla logo:

 

http://www.sendspace.com/file/2txruu

 

Eu só quero que o fio estique e acompanhe o movimento da bolinha...

Eai? Alguem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

QUASE consegui.

 

Eu consegui fazer com q o fio acompanhe a bolinha, só que além de não ter muita precisão, como eu ja disse, o fio vai aumentar de tamanho e, com ele, o tamanho do stroke.

 

Entao fui por outro caminho. Ao invés de usa scaleTo no fio, eu fiz um retangulo (um retangulo bem fino, só pra nao ter mais problemas com stroke), e usei o "xscale", para que ele apenas estique.

 

A partir daí eu precisava de algo pra suavizar o "crescimento" do fio, para que ele não esticasse antes da bolinha. Então, pesquisando a respeito, usei a propriedade ease-tween e o código até agora ficou assim:

 

(OBS: agora estou chamando o fio de "cabo", apenas para diferencia-lo do antigo e me lembrar q estou usando um retangulo agora).

 

import mx.transitions.Tween;
import mx.transitions.easing.*;
#include "lmc_tween.as"
bola.onRelease = function(){
	bola.stop();
	bola.bolinha.slideTo (300,30);
	bola.bolinha.scaleTo (500);
	bola.cabo.rotateTo (15);
	var Mov:Tween = new Tween(bola.cabo, "_xscale", Regular.easeOut, 120, 500, 2, true);
}

 

Dessa forma, a coisa QUASE fica convincente. O único problema ainda é a precisão. Dependendo do ângulo em que está o movimento atual do movieclipe, a rotação do fio é muito lenta e quase se perde da bolinha, além de que os dois não crescem exatamente juntos e centralizados, como deveria ser.

 

 

Aí vai o .fla (em flash 8) se quiserem dar uma olhada:

http://www.sendspace.com/file/984wss

 

Alguem me socorre ai. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma dica, tente usar o comando lineTo() para desenhar a linha ao invés de criar o mc e fazer ele se mover

 

acredito que vai facilitar muita coisa

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema agora nem é mais a linha. Fazer com um retangulo fino já resolve. Só q ainda nao ta funcionando do jeito q eu quero...

 

 

Eu quero apenas fazer aquele tipo de menu estilo "galhos" q saem de um mesmo eixo.... nao acho em lugar nenhum algum código pra isso.. :(

 

Aí vai a última versao de como está agora (tem uma imagem de fundo com o menu como deve ficar):

 

http://www.sendspace.com/file/kto52h

 

 

To achando q esse código ainda não é a melhor solução e acho q vou ter q atirar pra outra opção... Idéias?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem...ja descobri q o problema do codigo é o "rotateTo" para o fio. Como o movieclipe esta em movimento-loop, fica imprevisivel qual o angulo inicial do fio quando for clicado. POr isso q, dependendo do momento do clique, ele sempre sai do lugar.

 

Entao to vendo q terei q usar outro codigo completamente diferente....

Vou começar do zero entao

 

 

O q eu quero mesmo é fazer um menu como esse:

Imagem Postada

 

Queria mesmo q tivessem uma animação bacana com o passar do mouse (rotacionando os itens ou dando um leve zoom no q esta no mouseover)...e q eles fiquem se movimentando lentamente... e quando clicados, crescessem para o canto da tela. Ja vi esse tipo de menu em vários sites, mas nao consigo lembrar de algum que seja exatamente assim. O link do site da agencia W&K q eu passei tem comportamente similar...

 

Alguem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

NInguém pra me dar uma luz?

 

Eu já desisti que o movieclipe esteja em movimento..... Mas pra não ficar tão sem graça, eu queria q tivesse algum efeito no mouseover (uma simples animação de zoom nas bolinhas já seria o suficiente).

 

Mas aí esbarro em outro problema....se eu animar as bolinhas de qualquer forma no mousover, elas estarão alteradas de sua posição inicial na hora do clique (para as quais as coordenadas do código estão configuradas) e, mais uma vez, as coordenadas se confundirão, dando tudo errado....

 

 

Que outro tipo de código, mais flexível e dinâmico, eu poderia usar nessa situação?

 

Mais uma vez, aí vai o meu .fla: http://www.sendspace.com/file/kto52h

 

 

Help!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.