Ir para conteúdo

Arquivado

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

jocamo

[Resolvido] Nevar apenas entre determinados frames

Recommended Posts

Tenho um movie clip (animação com 400 frames que está em looping , ou seja ao chegar no frame 400 volta ao frame 1.

Quero colocar um efeito de neve , mas que só apareça no frame 130 e desapareça no frame 370.

Crieu uma camada acima de tudo e coloquei um mc com uma bolinha branca no frame 130 e dei um F5 de forma que a bolinha fique até o frame 370.Este mc da bolinha esta nomeado de "snow" e na aba advanced do Convert to symbol, marquei o Linkage>Export do ActinScript.

Criei outra camada para a action no frame 130:

Link da video aula de como fazer a neve ( de onde tirei o exemplo):

 

///////////////////////////

 

init = function () { 
width = 700; 
// pixels 
height = 400; 
// pixels 
max_snowsize = 10; 
// pixels 
snowflakes = 50; 
// quantity 
for (i=0; i<snowflakes; i++) { 
t = attachMovie("snow", "snow"+i, i); 
t._alpha = 20+Math.random()*60; 
t._x = -(width/2)+Math.random()*(1.5*width); 
t._y = -(height/2)+Math.random()*(1.5*height); 
t._xscale = t._yscale=50+Math.random()*(max_snowsize*10); 
t.k = 1+Math.random()*2; 
t.wind = -1.5+Math.random()*(1.4*3); 
t.onEnterFrame = mover;
}
}; 
mover = function() { 
this._y += this.k; 
this._x += this.wind; 
if (this._y>height+10) { 
this._y = -20;
} 
if (this._x>width+20) { 
this._x = -(width/2)+Math.random()*(1.5*width); 
this._y = -20;
} else if (this._x<-20) { 
this._x = -(width/2)+Math.random()*(1.5*width); 
this._y = -20;
}
} 
init();

 

//////////////

 

Quando dou um Ctrl+Enter funciona bem, a neve só aparece do frame 130 em diante , mas não desaparece no frame 370, quando inicia o frame 1 a neve continua a cair e assim sucessivamente.

O que faço nesta action para só nevar quando a agulha da timeline estiver entre o frame 130 e 370 ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque um blankFrame no ultimo frame da camada de AS

 

Assim vai interromper qualquer script que estiver executando até ali...

 

Ou use um

if(_currentFrame > 130 && _currentFrame < 370){
//Ações
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Berseck, mas eu consegui a solução em outro forum....

Fica assim:

No frame 370 , blankkeyframe e a seguinte action:

 

 

for (i=0;i<50;i++){
 unloadMovie("snow"+i);
}

Funcionou perefeitamente.

Abraços

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.