Ir para conteúdo

POWERED BY:

Arquivado

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

Leo Carvalho

Adicionando velocidade ou tween

Recommended Posts

Boa noite senhores,

 

 

 

Estou desenvolvendo um projeto e tenho a seguinte questão:

 

Apliquei uma navegação a página onde o usuário leva o cursor do mouse até o topo ou rodapé para transitar. Para isso coloquei 2 botões "invisiveis", um em cada extremidade, porém ele vai lento por demais, pois vai pixel por pixel.

Gostaria de uma dica para implementar uma velocidade ou até quem sabe um tween pra deixar o movimento smooth.

 

Segue o código que utilizei:

 

Botão do topo:

onClipEvent (enterFrame) {
   if (hitTest(_root._xmouse,_root._ymouse,true) && _root.siteContainer.tudo._y <0) {
 _root.siteContainer.tudo._y ++;
   } else {
_root.siteContainer.tudo.stop();
   }
}

Botão do rodapé:

onClipEvent (enterFrame) {
   if (hitTest(_root._xmouse,_root._ymouse,true) && _root.siteContainer.tudo._y >-4900) {
_root.siteContainer.tudo._y --;
 }
  else {
_root.siteContainer.tudo.stop();
   }
}

Se puderem me ajudem!

Abraço e obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! deixa eu tentar ajudar... usa a fórmula de velocidade

 

_y = variaPos -(variaPos - _y) * velocidade;

 

Geralmente a velocidade é usada em decimais, por exemplo (0.7).

 

Tenta usar, se pintar dúvida me avisa que eu te ajudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! deixa eu tentar ajudar... usa a fórmula de velocidade

 

_y = variaPos -(variaPos - _y) * velocidade;

 

Geralmente a velocidade é usada em decimais, por exemplo (0.7).

 

Tenta usar, se pintar dúvida me avisa que eu te ajudo.

 

Jerfs,

 

Não consegui implementar ao meu código :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Observe o fps que está usando.

 

Eu uso o Flash CS4 e CS5 com AS3, mantenho em 30 para suavizar o movimento, vale com uma tween ou em uma anima simples.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Observe o fps que está usando.

 

Eu uso o Flash CS4 e CS5 com AS3, mantenho em 30 para suavizar o movimento, vale com uma tween ou em uma anima simples.

 

Abs

 

Não, não. A questão não é o fps, pois as outras tweens estão normais. É o código que adiciona pixel a pixel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando 'enterFrame', então é frame a frame, ok.

 

Mesmo assim o fps interfere na velocidade do deslocamento.

 

Antes de postar testei com uma Tween e também com ENTER_FRAME (em AS3).

 

Pode conferir. ;)

 

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!

 

Nesse fds não consegui acessar a internet, na verdade estou sem micro e só acesso no trampo mesmo! Mas eae conseguiu sucesso!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando 'enterFrame', então é frame a frame, ok.

 

Mesmo assim o fps interfere na velocidade do deslocamento.

 

Antes de postar testei com uma Tween e também com ENTER_FRAME (em AS3).

 

Pode conferir. ;)

 

 

Abs

 

Já conferi. Estou trabalhando com 60 fps. Não é problema com FPS, como já falei, as outras animações estão fluindo normalmente. A questão é o código que usei que vai frame a frame, independente da velocidade do filme. O jerfs já deu uma solução, porém eu não soube adicionar o calculo de velocidade ao meu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leo é o seguinte... a Elektra tem razão, quando se usa o onEnterFrame está diretamente relacionado com o FPS sim, quanto maior o seu número de FPS mais rápido o cálculo será repetido. Se usa 60 frames por segundo, o calculo será realizado 60 vezes por segundo... entende? EnterFrame = ao entrar no frame, se o flash entra 60 vezes no frame a cada segundo, fica rapidissimo!

 

Quando ao código que te passei, vou tentar ilustrar para você:

 

Fiz um quadrado no stage e instaciei como quad e coloquei o seguinte código no frame 1:

 

var variaPosicao : Number = 10;

var velocidade : Number = .8;

 

onEnterFrame = function () {
	_root.quad._x = _root.variaPosicao - (_root.variaPosicao - _root.quad._x) * velocidade;
	
	if (_root._xmouse > 250) {
		_root.variaPosicao = 450;
	} else {
		_root.variaPosicao = 0;		
	}
	_root.v = _root.velocidade;
	_root.p = _root.quad._x;
}

Veja se te ajuda...

 

Falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

Valeu Elektra e Jerfs pela ajuda. Já tive um avanço que foi uma solução simples. Apenas adicionei no "++" um "+=10" e isso faz com que aumente a velocidade.

 

Meu problema agora é colocar o movimento smooth, pois está duro.

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.