Jump to content


Photo

Colocar Um Gradiente Em Um Objeto


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

#1 paula_faria

paula_faria

    12 Horas

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

Posted 28/04/2004, 17:50

o gente, eu aprendi aqui com vc a colocar cor em um objeto por AS..
tipo..
cor= new Color();
cor.setRBG(0x000000);

mas tipo.....pra eu colocar duas cores em um objeto?
mas com um efeito gradiente?
como eu faria isso??

mas por favor, ao colorem um codigo complexo, por favor...faça uma explicacao das linhas se possivel,
pq eu tenho dificuldades em aprender as coisas certinho...

obrigada, bjs
tchau!!

#2 MajoraP

MajoraP

    Flash, Apenas Flash

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:SC
  • Interesses:Ferramentas do Macromedia, principalmente Flash.

Posted 28/04/2004, 21:04

Eu tenho um código mas não posso explicar...

Alguém explicará o código pra você...

velocidadeVermelhoI = .1;
velocidadeVerdeI = .07;
velocidadeAzulI = .04;
velocidadeVermelhoII = .09;
velocidadeVerdeII = .06;
velocidadeAzulII = .03;
velocidaderotacao = .01;
onEnterFrame = function() {
anguloVermelhoI += velocidadeVermelho1;
anguloVerdeI += velocidadeVerde1;
anguloAzulI += velocidadeAzul1;
anguloVermelhoII += velocidadeVermelho2;
anguloVerdeII += velocidadeVerde2;
anguloAzulII +=velocidadeAzul2;
VermelhoI = Math.sin(anguloVermelho1)*127+128
VerdeI = Math.sin(anguloVerde1)*127+128
AzulI = Math.sin(anguloAzul1)*127+128
VermelhoII = Math.sin(anguloVermelho2)*127+128
VerdeII = Math.sin(anguloVerde2)*127+128
AzulII = Math.sin(anguloAzul2)*127+128
colI = VermelhoI << 16 | VerdeI << 8 | AzulI;
colII = VermelhoII << 16 | VerdeII << 8 | AzulII;
rot = Math.sin(angulorotacao += velocidaderotacao)*math.PI;
cores = [colI, colII];
alphas = [100, 100];
radianos = [0, 255];
matriz = {matrixType:"box", x:0, y:0, h:400, w:550, r:rot};
clear();
beginGradientFill("linear", cores, alphas, radianos, matriz);
lineTo(550, 0); 
lineTo(550, 400);
lineTo(0, 400);
lineTo(0, 0);
endFill();
};

Fonte do Código: http://forum.plugmasters.com.br/
Meu nome é Lord André

Mas podes me chamar de Lord

#3 DuRanG

DuRanG

    Doutor

  • Usuários
  • 988 posts
  • Sexo:Masculino
  • Localidade:Brasília - DF

Posted 28/04/2004, 21:49

esse aí é do dauton... mas o que a paula queria, pelo que entendi, é aplicar um gradiente dinamicamente a um objeto, e não criar um retângulo com um gradiente.

um jeito que dá pra se fazer é com máscara:

//o movieclip que receberá o efieto tem nome de instância mc
createEmptyMovieClip("gradiente", getNextHighestDepth()) //cria um novo movieclip
with (gradiente) { //direciona a ação pro movieclip gradiente
	matriz = { matrixType:"box", x:0, y:0, w:mc._width, h:mc._height, r:0 } //parâmetro de medidas pro gradientFill
	beginGradientFill("linear", [0xFF0000, 0x0000F], [100, 100], [0, 255], matriz)// cria um preenchimento gradiente
//aqui é criado um quadrado com as medidas do mc
	moveTo(0, 0)
	lineTo(mc._width, 0)
	lineTo(mc._width, mc._height)
	lineTo(0, mc._height)
	endFill()
//alinha o gradiente com o mc
	_x = mc._x
	_y = mc._y
}
gradiente.setMask(mc) //cria a máscara

Leandro Ferreira

#4 paula_faria

paula_faria

    12 Horas

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

Posted 29/04/2004, 00:28

ixi....mX2004 neh?

eu tentei no MX e nao apareceu nada nao,
eu coloquei isso no primeiro frame do meu filme...e nada................pq??

brigada, bjs
tchau!

#5 cybermix

cybermix

    andrewsmedina.com.br

  • Ex-Admins
  • 3586 posts
  • Sexo:Não informado
  • Localidade:Não sou desse planeta não!!!!
  • Interesses:python, fireworks, linux, php, flash...

Posted 29/04/2004, 08:25

e ae paula blz da uma olhada nesse codigo ae

//cria o movieclip em branco chamado grad no nivel 1
_root.createEmptyMovieClip( "grad", 1 );

//direciona a ação pro movieclip grad
  with ( _root.grad )

  {

  colors = [ 0xFF0000, 0x0000FF ]; //seta as cores
  alphas = [ 100, 100 ]; //seta o alpha
  ratios = [ 0, 0xFF ]; //proporcoes
  matrix = { a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1 }; /parâmetro de medidas pro gradientFill
  beginGradientFill( "linear", colors, alphas, ratios, matrix ); //cria o gradiente do tipo linear
 //agora vamos fazer um desenho atraves do as
 //movemos o clip para a posicao x,y
  moveTo(100,100);
 //criamos as linhas
  lineTo(100,300);
  lineTo(300,300);
  lineTo(300,100);
  lineTo(100,100);
//terminamos o preenchimento
  endFill();

  }

www.andrewsmedina.com.br

#6 paula_faria

paula_faria

    12 Horas

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

Posted 29/04/2004, 13:47

noossa!!!
agora funcionou perfeitamente......hehe

brigada, mesmo....soh mais uam cosia,
vc pode me explicar essas linhas??
colors = [ 0xFF0000, 0x0000FF ]; alphas = [ 100, 100 ]; ratios = [ 0, 0xFF ]; matrix = { a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1 }; beginGradientFill( "linear", colors, alphas, ratios, matrix );

eu nao entendi praticamente nada deas..

brigada, bjs
tchai!!!!

#7 DuRanG

DuRanG

    Doutor

  • Usuários
  • 988 posts
  • Sexo:Masculino
  • Localidade:Brasília - DF

Posted 29/04/2004, 20:21

pra mx:
//o movieclip que receberá o efieto tem nome de instância mc
createEmptyMovieClip("gradiente", getNextHighestDepth()) //cria um novo movieclip
with (gradiente) { //direciona a ação pro movieclip gradiente
matriz = { matrixType:"box", x:0, y:0, w:mc._width, h:mc._height, r:0 } //parâmetro de medidas pro gradientFill
beginGradientFill("linear", [0xFF0000, 0x0000F], [100, 100], [0, 255], matriz)// cria um preenchimento gradiente
//aqui é criado um quadrado com as medidas do mc
moveTo(0, 0)
lineTo(mc._width, 0)
lineTo(mc._width, mc._height)
lineTo(0, mc._height)
endFill()
//alinha o gradiente com o mc
_x = mc._x
_y = mc._y
}
gradiente.setMask(mc) //cria a máscara

parâmetros do gradientFill:
matriz = { matrixType:"box", x:0, y:0, w:mc._width, h:mc._height, r:0 }
beginGradientFill("linear", [0xFF0000, 0x0000F], [100, 100], [0, 255], matriz)

o 1° é o tipo de gradiente: linear ou radial. o 2° são as cores usadas no gradiente. o 3° são os valores de alfa usados no gradiente. o 4° é a posição de 0 a 255 de cada cor no gradiente. o 5° é uma matriz de transformação que coloca as propriedades x, y, largura, altura e rotação em radianos do gradiente. se eu quizesse, por exemplo, colocar 3 cores divididas igualmente entre o gradiente(vermelho, azul e verde), com alphas 100, 75 e 50, ocupando a metade do objeto e centralizado nele, com um ângulo de 45°, eu usaria:

matriz = { matrixType:"box", x:mc._width/4, y:0, w:mc._width/2, h:mc._height/2, r:45/180*Math.PI }
beginGradientFill("linear", [0xFF0000, 0x0000FF, 0x00FF00], [100, 75, 50], [0, 128, 255], matriz)

Leandro Ferreira

#8 paula_faria

paula_faria

    12 Horas

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

Posted 30/04/2004, 00:53

nossa, brigada, durang, mas agora soh faltou euentender o 4 paramentro, o q tem [100, 75,50] nesse seu exemplo.......

tem jeito de explciar ele de novo?


brigada, bjs
tchau!

#9 DuRanG

DuRanG

    Doutor

  • Usuários
  • 988 posts
  • Sexo:Masculino
  • Localidade:Brasília - DF

Posted 30/04/2004, 07:26

alpha de cada cor
Leandro Ferreira

#10 paula_faria

paula_faria

    12 Horas

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

Posted 30/04/2004, 15:06

nao durang, esse do alpfa é o terceiro q vc explicou, o q eu nao entendi foi o 4º neogocio la, o p4 paramentro........

brigada, bjs
tchau!

#11 DuRanG

DuRanG

    Doutor

  • Usuários
  • 988 posts
  • Sexo:Masculino
  • Localidade:Brasília - DF

Posted 30/04/2004, 19:43

ah sim.. o 4º é a posição relativa do centro de cada cor, que varia de 0 a 255. tente, por exemplo, mudar pra isto:

beginGradientFill("linear", [0xFF0000, 0x0000FF, 0x00FF00], [100, 75, 50], [0, 220, 255], matriz)
Leandro Ferreira

#12 paula_faria

paula_faria

    12 Horas

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

Posted 01/05/2004, 00:06

entao seria tipo....
o mei odas duas cores.....?
no caso desse seu exemplo , o 220, seria bem o meio do 0000ff e do 00ff00 ????

brigada, bjs
tchau!

#13 paula_faria

paula_faria

    12 Horas

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

Posted 01/05/2004, 00:29

ah, tipo, e tb se eu quisesse mudar o gradiente linear?
tipo, ao em vez de fazer ele ir dum lado pro outro, ele ir de cima pra baixo?
como eu faco isso?


brigada, bjs
tchau!

#14 DuRanG

DuRanG

    Doutor

  • Usuários
  • 988 posts
  • Sexo:Masculino
  • Localidade:Brasília - DF

Posted 01/05/2004, 13:09

ficaria assim: numa linha que vai do 0 ao 255, a 1ª cor ficaria no 0, a segunda no 220 e a terceira no 255.

pra ficar de cima pra baixo é só mudar o ângulo:

matriz = { matrixType:"box", x:mc._width/4, y:0, w:mc._width/2, h:mc._height/2, r:Math.PI }
beginGradientFill("linear", [0xFF0000, 0x0000FF, 0x00FF00], [100, 75, 50], [0, 128, 255], matriz)
Leandro Ferreira

#15 paula_faria

paula_faria

    12 Horas

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

Posted 01/05/2004, 13:41

ah sim, agora eu entendi certim....

brigada, bjs
tchau!




1 user(s) are reading this topic

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

IPB Skin By Virteq