Ir para conteúdo

POWERED BY:

Arquivado

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

superkatatau

Drag de Mc com Animação Frame a Frame

Recommended Posts

Olá gente,

estou desenvolvendo um novo projeto e tenho tudo esquematizado para fazer isso:

 

[http://earthkeepers.timberland.com/

 

 

Ja tenho todo o cenario prontinho, as imagens em 3d estão dentro de um MOVIE CLIP, em sequencia de frames. Agora preciso fazer o seguinte. Ao movimentar o mouse em cima desta imagem para direita, mova alguns frames/frames para direita. Ao movimentar para a esquerda mova alguns para esquerda.

 

A logica seria o seguinte:

 

Tenho 100 frames. Se estou no meio da tela com o mouse(em relação ao X), mostra meu frame 50 e de acordo com o movimento para direita ou para a esquerda, vejo os outros frames.

 

 

 

 

Eu pensei em fazer desta forma. Se alguem tiver alguma outra idéia será bem vinda. Preciso ter uma luz, do que fazer para isso funcionar em as3(será integrado com o rezise deste mc).

 

Abraço e obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites
stage.addEventListener(MouseEvent.MOUSE_MOVE, stageMouseMoveHandler);

var globo:MovieClip; // globo seria o nome da instância do seu movieclip
globo.stop(); // pára a animação do seu movieclip, que, por padrão, seria iniciada

function stageMouseMoveHandler(e:MouseEvent):void
{
var coef:Number = e.stageX / stage.stageWidth; // define um coeficiente entre a posição do mouse e a largura da stage
globo.gotoAndStop(Math.round(coef * globo.totalFrames)); // aplica o coeficiente à quantidade total de frames da sua animação
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bahhh cara, muito legal essa solução... estava pensando em algo muito mais ninja! hehehehe

 

agora me diz uma coisa, e se fosse fazer um slider, exatamente como no exemplo!???? como seria para relaciona-lo com outro mc de drag???

 

abraço e muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bahhh cara, muito legal essa solução... estava pensando em algo muito mais ninja! hehehehe

 

agora me diz uma coisa, e se fosse fazer um slider, exatamente como no exemplo!???? como seria para relaciona-lo com outro mc de drag???

 

abraço e muito obrigado!

 

Você só teria que mecher no cálculo do coeficiente. Dividiria a posição atual do "puxador" pela posição máxima. E, claro, habilitar o comportamento convencional de puxar e soltar no puxador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno, olha se tu consegue me ajudar...

 

adaptei o calculo do posicionamento ao slider, ficou bem bacana, ta tudo funcionando. Só tem uma coisa que não consegui fazer:

 

1 - Preciso que mesmo que o mouse não esteja em cima do mc de drag(bola), ele continue passando os frames do fundo. O que acontece hoje: o slider funciona direitinho, só que quando estou arrastando a bola de slider pela barra(com o mouse down) e tiro ela de cima do movie clip da bola, ele para de mexer na imagem do fundo, ou seja, sai da função.

 

Precisaria de um eventListener do seguinte tipo:

 

slider.bola.addEventListener(MouseEvent.MOUSE_MOVE and MOUSE_DOWN, movimentaImagem). HEHEHE, seria perfeito...

 

 

 

Dá uma olhada no codigo...

 

//crio o slider
var sui:SliderUI = new SliderUI(stage, "x", slider.barra, slider.bola, 10,10, 90);

//listener o drag da barra
slider.bola.addEventListener(MouseEvent.MOUSE_MOVE, movimentaImagem);

//começar automaticamente do posição do slider
fundo.gotoAndStop(Math.round(sui.percent * 100));

[code]

 

//função que tu me passou modificada, funcionando, menos quando tiro o foco do mc bola

function movimentaImagem(e:MouseEvent):void{

var coef:Number = sui.percent * 100 // define um coeficiente entre a posição do mouse e a largura da stage

fundo.gotoAndStop(Math.round(coef)); // aplica o coeficiente à quantidade total de frames da sua animação

}

[/code]

 

 

to usando o SliderUI (Documentação).

 

 

Abraço

Gustavo

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.