Jump to content


Photo

Efeito Neve


  • Faça o login para participar
22 replies to this topic

#1 guilherme2005

guilherme2005

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte

Posted 14/03/2005, 13:14

Ai galera eu fiz esse codigo aqui pra fazer o efeito de neve tipo os flocos de neve ficar caindo na tela......mas ta dando erro no AS queria uma ajuda ai d vcs

O codigo q eu fiz é esse:
root.onEnterFrame = function() { 
    i++; 
    neve.duplicateMovieClip("neve"+i, i); 
    with (this["neve"+i]) { 
        _x = random(500); 
        _alpha = random(50); 
    } 
};

ai ta aparecendo esse erro aqui quando eu vo rodar a animação:

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Statement must appear within on/onClipEvent handler
root.onEnterFrame = function() {

Total ActionScript Errors: 1 Reported Errors: 1


Vlw....
Um dia ainda seria um webMaster!!!!!!

#2 Saruman

Saruman

    Veterano

  • Usuários
  • 1112 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP

Posted 14/03/2005, 13:25

4 coisinhas básicas...

1. O correto é _root.onEnterFrame = function() {} , atente para o underline

2. Esta ação deve ser colocada nas ações do quadro, e naum nas ações de um MC ou qualquer outro objeto...

3. Mesmo assim, essa ação não vai fazer a neve cair com um efeito real... trabalhe melhor em cima dele...

4. Há outro erro... deve-se haver uma declaração da variavel i antes de incrementa-la em uma unidade... entaum coloque a ação i=0; antes dessa função que vc está usando...

Vo te dar uma ajudinha :D
Crie um mc com a sua neve (faz uma bolinha mesmo... :D ) instancie ela de "neve" sem aspas... tire ela do caminho (coloque fora da area visivel)... agora coloque essa ação aqui no quadro em que vc está... (dei uma adaptada no que vc passou...):

i=0;
_root.onEnterFrame = function() { 
   i++; 
   neve.duplicateMovieClip("neve"+i, i); 
   with (this["neve"+i]) { 
       _x = random(500);
    _y = 0;
       _alpha = random(50); 
   } 
   for(a=1;a<=i;a++){
    with(this["neve"+a]){
     _y+=10;
    }
   }
};

Se preferir dar uma incrementada pode fazer o floco se mover no eixo x tb... precisa de algumas alterações:
i=0;
_root.onEnterFrame = function() { 
   i++; 
   neve.duplicateMovieClip("neve"+i, i); 
   with (this["neve"+i]) { 
       _x = random(500);
    _y = 0;
       _alpha = random(50); 
   } 
   for(a=1;a<=i;a++){
    if(_root['xneve'+a]==undefined || _root['xneve'+a]==this["neve"+a]._x){
     _root['xneve'+a]=(random(30)-15)+this["neve"+a]._x;
    }
    with(this["neve"+a]){
     _y+=10;
     if(_root['xneve'+a]>_x) _x+=1;
     else if(_root['xneve'+a]<_x) _x-=1;
    }
   }
};

Edição feita por: Saruman, 14/03/2005, 13:39.

import Profile;

var saruman:Profile = new Profile();

saruman.nome = new String("Tiago S. Kaneta");

saruman.localizacao = new Array("São Paulo","SP");

#3 guilherme2005

guilherme2005

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte

Posted 14/03/2005, 13:46

Ai Saruman muito obrigado + 1 vez
1 dia serei igual a vc ter as respostas na ponta da lingua :P

Virei seu fã...

Abração
Um dia ainda seria um webMaster!!!!!!

#4 Saruman

Saruman

    Veterano

  • Usuários
  • 1112 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP

Posted 14/03/2005, 13:56

Se vc se empenhar tenho certeza que sim :D

Soh um comentário... se vc deixar esse script rodando por muito tempo uma hora vai ter muito, mas muitos mcs... o que vai deixar o filme meio lento... para resolver isso coloque depos daquele _y+=10; :

if(_y>420) this["neve"+a].unloadMovie();
Esse 420 é a altura do filme mas um pouquinho... pra que a neve não desaparece antes de sair da tela...
import Profile;

var saruman:Profile = new Profile();

saruman.nome = new String("Tiago S. Kaneta");

saruman.localizacao = new Array("São Paulo","SP");

#5 guilherme2005

guilherme2005

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte

Posted 14/03/2005, 14:07

Desculpe estar vindo d novo aqui mas agora ta aparecendo este erro aqui quando eu rodo o filme:

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Statement must appear within on/onClipEvent handler
i=0;

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 2: Statement must appear within on/onClipEvent handler
_root.onEnterFrame = function() {

Total ActionScript Errors: 2 Reported Errors: 2
Um dia ainda seria um webMaster!!!!!!

#6 Saruman

Saruman

    Veterano

  • Usuários
  • 1112 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP

Posted 14/03/2005, 14:50

Aonde vc tah colocando a ação? Tem que colocar ela na ação do quadro e naum em um MC
import Profile;

var saruman:Profile = new Profile();

saruman.nome = new String("Tiago S. Kaneta");

saruman.localizacao = new Array("São Paulo","SP");

#7 guilherme2005

guilherme2005

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte

Posted 14/03/2005, 14:54

Consegui arrumar o problema

Mas quando eu deixo rodar animação ele começa ficar muito carregada...e lenta
eu coloquei esse codigo aqui :
if(_y>420) this["neve"+a].unloadMovie();

mas n adiantou muito :(
Tem algo a + para fazer????


Vlw...
Um dia ainda seria um webMaster!!!!!!

#8 Saruman

Saruman

    Veterano

  • Usuários
  • 1112 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP

Posted 15/03/2005, 10:00

Olha... naum deveria fikar lento... tente ao testar o filme ver se os flocos de neve estão desaparecendo... se naum estiverem te passo o script compelto...
import Profile;

var saruman:Profile = new Profile();

saruman.nome = new String("Tiago S. Kaneta");

saruman.localizacao = new Array("São Paulo","SP");

#9 guilherme2005

guilherme2005

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte

Posted 15/03/2005, 10:15

Eles na estão desparecendo n kra......
C der me passa o script inteiro blz????

Vlw...
Um dia ainda seria um webMaster!!!!!!

#10 Saruman

Saruman

    Veterano

  • Usuários
  • 1112 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP

Posted 15/03/2005, 13:01

tah na mão:
i=0;
_root.onEnterFrame = function() {
  i++; 
  neve.duplicateMovieClip("neve"+i, i); 
  with (this["neve"+i]) { 
      _x = random(500);
   _y = 0;
      _alpha = random(50); 
  } 
  for(a=1;a<=i;a++){
   with(this["neve"+a]){
    _y+=10;
	if(_y>420) this["neve"+a].unloadMovie();
   }
  }
};

import Profile;

var saruman:Profile = new Profile();

saruman.nome = new String("Tiago S. Kaneta");

saruman.localizacao = new Array("São Paulo","SP");

#11 guilherme2005

guilherme2005

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte

Posted 15/03/2005, 13:09

Mais uma vez muito obrigado kra....


Vlw....
Um dia ainda seria um webMaster!!!!!!

#12 guilherme2005

guilherme2005

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte

Posted 16/03/2005, 19:56

Como q eu faço inve de cair ela subir??? eu sei q eu tenho q alterar o x e o y..... mas n to conseguindo alguém pode me dar + 1 help????

Vlw....
Um dia ainda seria um webMaster!!!!!!

#13 Saruman

Saruman

    Veterano

  • Usuários
  • 1112 posts
  • Sexo:Masculino
  • Localidade:São Paulo, SP

Posted 16/03/2005, 21:39

i=0;
_root.onEnterFrame = function() {
 i++; 
 neve.duplicateMovieClip("neve"+i, i); 
 with (this["neve"+i]) { 
     _x = random(500);
  _y = 0;
     _alpha = random(50); 
 } 
 for(a=1;a<=i;a++){
  with(this["neve"+a]){
   _y-=10;
if(_y<-20) this["neve"+a].unloadMovie();
  }
 }
};
Simples naum?
import Profile;

var saruman:Profile = new Profile();

saruman.nome = new String("Tiago S. Kaneta");

saruman.localizacao = new Array("São Paulo","SP");

#14 guilherme2005

guilherme2005

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte

Posted 16/03/2005, 22:50

Muito :D tu eh o max em AS :D

Vlw...
Um dia ainda seria um webMaster!!!!!!

#15 xuki

xuki

    12 Horas

  • Usuários
  • 261 posts
  • Sexo:Não informado

Posted 14/07/2005, 12:21

O meu não ta funcinado :o

talvez se usase o removeMovieClip() não seria uma boa?

Stage.showMenu = false;
stop();
i=0;
_root.onEnterFrame = function() { 
  i++; 
  bolha.duplicateMovieClip("bolha"+i, i); 
  with (this["bolha"+i]) { 
      _x = random(500);
   _y = 90;
   if(_y>60) this["bolha"+a].removeMovieClip();
      _alpha = random(50); 
  } 
  for(a=1;a<=i;a++){
   if(_root['bolha'+a]==undefined || _root['bolha'+a]==this["bolha"+a]._x){
    _root['bolha'+a]=(random(30)-15)+this["bolha"+a]._x;
   }
   with(this["bolha"+a]){
    _y-=1;
	if(_y>100) this["bolha"+a].removeMovieClip();
	if(_root['bolha'+a]>_x) _x+=1;
    else if(_root['bolha'+a]<_x) _x-=1;
   }
  }
};

O o meu ai

abraço
P(eace) L(ove) U(nity) R(espect)




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq