Ir para conteúdo

POWERED BY:

Arquivado

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

tuco

Quero fazer este código se repetir

Recommended Posts

Bom galera minha duvida é simples , e acredito que este código seja bem conhecido tambémgostaria de saber como faço para dar um loop neste código fazendo que ele Se repita continuamente ,ou quantas vezes eu desejar.(para quem não sabe este código colocado em um mc faz ele se deslocar)onClipEvent(load) {_x = 30;fim = 250;}onClipEvent(enterframe) {_x = _x + ( _x – fim)*.1;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O próprio evento onEnterFrame já executa eternamente o código inserido nele.

 

Se você quiser que seja executadas x vezes o código, faz assim:

onClipEvent(load) {	  _x = 30;	  fim = 250;	  num = 0	  vezes = 5;}onClipEvent(enterframe) {	  if (num < vezes) {			_x = _x + ( _x – fim)*.1;			num += 1;	  } else {			delete enterframe;	  }}

O teu código postado faz o MC andar no palco da posição x = 30 até a posição x = 250, de 0.1 em 0.1 pixels.

Com esse if que eu coloquei, a função vai rolar 5 vezes, ou seja, andar 0.5 pixels.

 

Não entendi direito se esse era o problema... mas qualquer coisa, posta novamente.

 

Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, tbm naum entendi direito se eh isso, pq parece muito simples(colocando o if)... ae ludoman, achu q naum teria precisão de ser colocado o else, nem o delete(onEnterFrame)...me dá uma luz aew.. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade o else com o delete onEnterFrame não é necessário se o MC for ficar estático no palco. (O MC fica em uma posião _x onde a conta _x + ( _x – fim)*.1 dá a posição atual....)Mas, se por algum motivo quisermos trocar a posição do MC, sem apagar o onEnterFrame, ele vai se movimentar novamente....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa.. tava olhando o código que eu postei e tem um erro... não é delete enterframe, é delete onEnterFrame.O que eu entendi sobre a sua dúvida era que você queria que o MC andasse na tela, mas que fosse posível controlar quantas vezes esse código de andar na tela seja executado.O evento onEnterFrame já faz esse loop automaticamente, executando a ação de movimento até que a posição _x do MC seja 250.Configurei um if que verificará no onEnterFrame (que é um loop por natureza), quantas vezes o código foi executado e, parar quando tiver passado 5 vezes.o delete onEnterFrame é para apagar o evento onEnterFrame e sumir com esse loop automático.Em linguagem prática é basicamente isso que o código faz.Seria essa a sua dúvida???Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

o código ele faz um mc andar no palco mesmo.O enterframe pelo que eu saiba ele faz com que o mc se desloque , mas não com que o evento seja realizado novamente ..entendeu??

Compartilhar este post


Link para o post
Compartilhar em outros sites

As ações no comando onClipEvent(load) são executadas somente uma vez, quando o SWF é carregado. As ações no comando onClipEvent(enterFrame) são executadas sempre que a reprodução entra em um quadro. Mesmo em um SWF com apenas um quadro, a reprodução ainda entra nesse quadro repetidamente e o script é executado também repetidamente. No caso o teu código, o MC "anda" porque a ação enterFrame é executada a cada quadro, mesmo que exista somente um quadro, e a posição _x é alterada de poquinho em poquinho, o que determina a animação.Relendo todo esse post, estou ainda muito confuso sobre qual é a dúvida....Não entendi o que você quer fazer e não está conseguindo...Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

realmente você deve estar confuso , por que o que você esta dizendo é o que eu já sei ..Faça um teste coloque o código que eu postei em um mc , e você vai ver que ele se desloca apenas uma vez até a posição final, o que eu quero é que ele ao chegar a posição final , ele volte a posição inicial e faça o trajeto novamente entendeu??eu sei que o evento enterframe faz com que ele se desloque de frame em frame mesmo ele estando em um frame só..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhhhh!!!!

Agora entendi.... hehehehe

Mas você quer que ao acabar o movimento ele volte para a situação inicial instantâneamente ou volte em motion também???

 

Para voltar instantâneamente faz assim:

onClipEvent (load) {	inicial = 30;	fim = 250;	num = 0;	vezes = 5;	_x = inicial;}onClipEvent (enterFrame) {	_x = _x -(_x - fim)*0.1; //detalhe que como o fim é maior que a posição _x, vai dar um número negativo. por isso o - antes do parenteses	if (num<vezes && _x >= fim-0.45) { //por motivos de o número ficar muito pequeno, o flash não está incrementando e dando um erro de 0.45 px, parando na posição 249,55 e não 250		num += 1;		_x = inicial;	} else {		delete onEnterFrame;	}}

Vê se é alguma coisa assim....

Não consegui corrigir aquele problema com o -0.45... Notei que para qualquer valor de inicio e de fim, o erro é sempre o mesmo: 0.45. Se deixar fixo, acho que não vai dar problema...

 

Vê se isso te ajuda

 

Falows

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.