Ir para conteúdo

POWERED BY:

Arquivado

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

simas

movie clip segue o mouse

Recommended Posts

Pessoal o problema é o seguinte

 

Eu tenho o palco com 536X100 e coloco uma imagem nele 2663X100 (transformo esta imagem em movieclip)

 

 

Mexo a imagem (q é tipo uma linha com varias fotos lado a lado)de acordo com a posição do mouse. Só é necessário a posição X do mouse.

 

Quero mexer para o lado direito e esquerdo, (Ou seja a imagem tem q acompanhar o mouse) porém não consigo fazer com que ele vá ate o final na direita e da esquerda. E qdo chegue no final de um dos lados ele pare, dando apenas a opção para ir pro lado oposto

 

Fiz umas pesquisas e usei alguns códigos que funcionam parcialmente no meu caso, pois ñ chegam até as pontas da imagem.

 

Quem poder a incrementar estes códigos para me ajudar nesse meu movie clip, ficarei bastante grato.

E quem tiver interessado em criar uma flash com movie clip que acompanha o mouse estes scripts funcionam bem se o movie clip for menor que o stage, apenas precisa acrescentar o eixo Y do mouse caso queiram q se movimente pra cima.

 

Abaixo coloquei alguns códigos q usei e também o link do arquivo fla com os codigos

 

arquivo fla

 

swf

 

 

Códigos

 

Ex:1

 

onClipEvent (enterFrame) {

 

_x += (_parent._xmouse-_x)*.1

 

 

}

 

Ex:2

 

onClipEvent(enterFrame){

if(_x< _root._xmouse){

_x+= (_parent._xmouse - _x)/10;

}else{

_x-= (_parent._xmouse + _x)/25

}

}

 

Ex:3

 

onClipEvent (load) {

_x =0; // posição de inicio no filme;

var mom =.15; // constante de deslocamento do filme;

}

onClipEvent (enterFrame) {

_x += _xmouse*mom; // faz o cálculo de deslocamento a partir da variável _xmouse (posição X do mouse no quadro do filme);

 

 

}

 

Ex:4

onClipEvent(load) {

nScreenWidth = 536;

nMaxRate = 15;//velocidade

 

function moveLeft(nPixels) {

this._x -= nPixels;

if (this._x < 0-nScreenWidth) {

this._x = 0;

}

}

function moveRight(nPixels) {

this._x += nPixels;

if (this._x > 0) {

this._x = 0-nScreenWidth;

}

}

}

 

 

onClipEvent(enterFrame) {

 

if (_root._xmouse < nScreenWidth/2 && _root._xmouse > 0) {

moveRight(nMaxRate - _root._xmouse * nMaxRate/(nScreenWidth/2));

} else {

if (_root._xmouse > nScreenWidth/2 && _root._xmouse < nScreenWidth) {

moveLeft(_root._xmouse * nMaxRate/(nScreenWidth/2) - nMaxRate);

}

}

}

 

 

 

Ex:5

onClipEvent (enterFrame) {

myRadians = Math.atan2(_root._xmouse+this._x);

myDegrees = Math.round((myRadians*180/Math.PI));

_root.xChange = Math.round(_root._xmouse-this._x);

_root.xMove = Math.round(_root.xChange/20);

this._x += _root.xMove;}

 

 

Abraços, obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que é uma solução diferente, mas você já viu esse post?

 

Veja também um tópico com essa mesma dúvida aqui. Tem um bocado de soluções e idéias para você tentar ;)

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.