Ir para conteúdo

Arquivado

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

\/itao

Foto desliza conforme mouse

Recommended Posts

Galera.de acordo com as informações passadas pelo Carneirinho consegui fazer. Ficaram 3 camadas:uma com as ações, uma com a máscara e a outra com o mapa.onEnterFrame = function(){ dif=Stage.height - _root._ymouse; dif2=Stage.width - _root._xmouse; fig._y=dif; fig._x=dif2;}Valeu a força!!!JR.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Jr., belezaCara, realmente funciona, mas esse script não impõe limites...(pega a tela inteira)...pelo menos no teste q eu fiz aqui.O lence é fazer rolar a imagem mas somente com o mouse dentro do quadrado (onde fica a máscara)...Mas valeu a força...isso com certeza vai ajudar em outras coisas!!!ps: to qse conseguindo...falta uns ajustes...mas tá F#da!!! pq não manjo mto JS né ;) rsrsFalow negada!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Jr...é justamente isso q eu to rachando a cuca pra fazer, um jeito de colocar limites dentro de quadrado (q seria a mascara)...Esse esquema q você posto ae não impóe limites, ou seja...independente de estar com mascara ou não, esta ação (de mouse mover MC) vai funcionar na área toda do flash...To tentando, mas num to conseguindo tb...tentei tds os scripts q postaram aqui, adaptei, busquei em outros sites...mas ainda nada...qdo tiver alguma coisa eu posto ae pra ajuda...e pra tirar minhas duvidas tb, pq tá F#DA!!!Falow!!! Abraço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que legal, vejo que o povo anda batendo a cabeça aqui e estão quase dando nó no saco porque não seguem o que a gente fala, vão sempre pro mais fácil, querem copiar e colar código direto e quando precisam criar algo ficam batendo cabeça enquanto não acham uma boa alma pra dar o código aqui facilmente, se entrarem numa empresa que no dia ficar sem internet e não tiverem acesso ao forum ou onde buscar uam solução pronta, estarão na roça pois têm preguiça de pensar, bom, vamos la, segundo o que eu falei:

 

Vamos considerar o caso na Vertical e trabalhar com a altura do palco, altura do movieclip e a posição em _y do mouse (altura do mouse).

 

Falei aqui para arrumarem um algoritimo lógico e NUNCA usar números no código, então vamos la:

 

primeiro de tudo teremos que pegar os valores de altura do palco e altura do movieclip como eu disse, então começaremos por isso:

 

sh = Stage.height; // pega a altura do palco e atribui a variavel sh

mc_height = mc._height; // pega a altura do movieclip e atribui a variavel mc_height

 

Pensando agora o movieclip só podera andar no palco o tanto que ele é maior que o palco certo?então faremos uma conta que é saber o quanto ele é maior, isso é simples, tamanho do movieclip - o tamanho do palco:

 

diferenca = mc_height - sh;

 

Então até aqui ja saberemos o quanto que o mc poderá andar sobre o palco, agora teremos que pegar a porcentagem disso, e como ja estamos no meio do caminho seria só dividir essa diferença pelo tamanho do palco:

 

porcentagem = diferenca / sh;

 

Ja temos então tudo o que precisamos para começar a fazer um loop de posicionamento, então vamos la, todos conhecem o onEnterFrame, vamos trabalhar com ele, agora tá fácil, é só multiplicar a posição do mouse pela porcentagem que acharemos o quanto o movieclip pode andar:

 

onEnterFrame = function(){

pos = (_root._ymouse * porcentagem);

mc._y = pos;

}

 

Testem isso, vocês verão que andando com o mouse na tela o mc vai se deslocar conforme a posição do mouse e exatamente o tanto que o mc tem de sobra, nessa hora vão me xingar "carneirinho burro f** da fruta, o mc não ta indo contra o mouse" ai vocês se perguntam, na matemática qual é a conta que devem fazer para inverter o valor de um inteiro?A resposta é multiplicar por -1, 400 x 1 = 400 e 400 x -1 = -400 ok? então é só adicionar a posição * -1:

 

onEnterFrame = function(){

pos = (_root._ymouse * porcentagem) * -1;

mc._y = pos;

}

 

Pronto, um script tão simples ai e vocês se matando, agora vocês podem jogar ai um mc de qualquer tamanho num palco de qquer tamanho que vai funcionar, e sem precisar ficar declarando valores de altura do palco e movieclip com numeros, agora é só jogar um ease e é fim desse assunto, espero que tenham entendido a explicação.

 

abraço,

 

Carneirinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faaaaala Carneirinho,

 

Po cara, brigadão mesmo pela explicação...tipo, não pq mando pronto o bagulho...mas q tipo...foi um TUTO em tanto, agora eu entendi, +/-, rs, o pq das coisas...

 

Mas tipo, só para esclarecer...o primeiro Script q eu postei (com numeros - tamanho do palco) funciona como esse q você posto, é claro q o seu é melhor pq independe do tamnhao do MC e do Palco...

 

...MAS, queria lembrar q minha duvida inicial era como fazer para impor limites nessa ação...pq de todos os jeitos q tentei, essa ação pega o palco todo do flash...e, no meu caso...o MC seria menor q o palco...

 

Vou explicar melhor com um exemplo: tenho um palco de 800X600...dentro disso tem uma foto(MC) sob uma MÁSCARA. A foto por sua vez é menor q a mascara q é menor q o palco. Queria q esta ação de "oposição" ficasse restrita ao espaço q a máscara ocupa.

 

Queria saber se tem como, e como fazer, ou q logica usar...dá pra fazer a partir diso q você postou???

 

O Ale me ajudou com um script e consegui fazer algo assim:

 

foto.onRollOver = panelOver;function panelOver() {	this.onEnterFrame = scrollPanel;	delete this.onRollOver;}var b = stroke.getBounds(_root);function scrollPanel() {	if (_xmouse<b.xMin || _xmouse>b.xMax || _ymouse<b.yMin || _ymouse>b.yMax) {		this.onRollOver = panelOver;		delete this.onEnterFrame;	}	if (foto._x>=0) {		foto._x = 1092;	}	if (foto._x<=1092) {		foto._x = 0;	}	if (foto._y>=0) {		foto._y = 642;	}	if (foto._y<=642) {		foto._y = 0;	}	var xdist = _xmouse-1092;	foto._x += Math.round(-xdist/2);	var ydist = _ymouse-642;	foto._y += Math.round(-ydist/2);}
Onde "foto" é o MC e os números são as dimensões da foto. No fim está dividido por 2 pq a máscara tem a metade do tamanho do MC.

 

Mas, acontece q...até funcionou...impos os limites como eu queria...mas ficou defeituoso...A imagem não "anda" completamente...e, se parar de mover o mouse dentro dessa área, a ação pára de funcionar.

 

Será q com isso, fica mais facil me entender?!?! Para tentar ajudar, ou me mandar TOMAR NO SUL, rsrs brincadeira hein...haha

 

Bom Carneirinho, se achar válida minha dúvida...Ficaria mto grato...como disse, não estou aqui para ficar copiando e colando, só queria uma LUZ, alguns toques e tal, para aprender a fazer isso

 

VALEU GALERA!!! Abraço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não percebeu, o tamanho do palco server como mascara, você faz a referencia por ele, mas você tb pode usar um movieclip como referencia e pelar o valor de _y dele como _y inicial e tb o _height dele como altura, dai pra pra calcular o limite é simples, quando o _y do mc que se move, for igual ao _y do mc que é a mascara, ele não vai poder ultrapassar, dai com um IF simples você resolve isso, do outro lado é o seguinte, você tem a diferença que é o tanto que o mc pode passar, dai se o _y for menor que o _y da mascara - a diferença ele tb não vai poder subir mais, é outro caso que um if simples funcionaria, ai é só usar a cabeça, botar ela pra pensar um pouco que se acha a lógica pra tudo, não precisando fazer uma solução alternativa, mas conhecida como "gambiarra".

Compartilhar este post


Link para o post
Compartilhar em outros sites

putz carneiro!!!nem sei o q falar cara!!s você naum fosse taum barbudo, ia levar um bjo na buchecha!!! huaeuiheiuaheauehuaiheuavaleu msm velinho!! putzz! valeu msm... (uma lagrima acabou d cair.. hahaha)abracaum velinho!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala galeria...blzura.?Desculpe por colocar isso novamente em pauta... sei q o POST é antigo... mas surgiu uma dúvida... queria saber como deixar o fundo movimentando tanto pro eixo X qto pro eixo Y ao mesmo tempo... ex.:Se o mouse estiver numa diagonal... a imagem do fundo acompanharia.... isso pra diagonal esquerda e direita... enfim pra qqr posição so STAGE ela mudaria.Se alguém puder ajudar.[]´s.

Compartilhar este post


Link para o post
Compartilhar em outros sites

gabrielkreischer

 

Sei que a intenção foi boa mas este topico é de 2007

 

Se deseja realmente ajudar o forúm responda em topicos recentes onde os usuarios ainda precisam da resposta

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.