Olá, estou tendo um pequeno problema com reaproveitamento de código fonte, e tendo que repetir em vários locais, gostaria de ajuda se puderem...
Explicando o problema:
estou desenvolvendo um sisteminha em flash onde o usuário escolhe uma figura em uma lista, e após disso ele pode personalizar as cores dessa figura, através de uma tabela básica de cores. são 24 cores, que criei o botão para elas e defini a cor específica de cada um botão nomeado de b1,b2,b3... usando array:
Após definir os botões e cores de cada um, fiz um loop para adicionar o evento aos botões:
for(var i:int=0; i<btts.length; i++) {
// set the color to each button
obj_color.color = set_colors[btts[i].name];
btts[i].transform.colorTransform = obj_color;
// register CLICK event for each button
btts[i].addEventListener(MouseEvent.CLICK, changeColor);
}
Após os botões, coloquei a figura e transformei cada "parte" dela em um MovieClip, ficando: mc1, mc2, mc3...
Logo abaixo, a criação das variáveis que serão usadas no AS:
var obj_color:ColorTransform = new ColorTransform();
var item:MovieClip = MovieClip(mc1); //onde mc1 é uma parte da figura que será mudara a cor
E logo após a function que faz a troca da cor da figura:
function changeColor(evt:Event):void
{
var b_name = evt.target.name;
obj_color.color = set_colors[b_name];
item.transform.colorTransform = obj_color;
}
Até aí tudo certo, tudo funciona...
Mas a hora de eu selecionar a "outra parte" que quero alterar a cor, não consigo fazer uma function genérica que eu consiga reutilizar para todos os MCs (mc1, mc2...)
então tive que fazer assim:
mc1.addEventListener(MouseEvent.CLICK, mudaClipe1);
mc2.addEventListener(MouseEvent.CLICK, mudaClipe2);
mc3.addEventListener(MouseEvent.CLICK, mudaClipe3);
mc4.addEventListener(MouseEvent.CLICK, mudaClipe4);
mc5.addEventListener(MouseEvent.CLICK, mudaClipe5);
mc6.addEventListener(MouseEvent.CLICK, mudaClipe6);
function mudaClipe1(event:MouseEvent):void { item = MovieClip(mc1); }
function mudaClipe2(event:MouseEvent):void { item = MovieClip(mc2); }
function mudaClipe3(event:MouseEvent):void { item = MovieClip(mc3); }
function mudaClipe4(event:MouseEvent):void { item = MovieClip(mc4); }
function mudaClipe5(event:MouseEvent):void { item = MovieClip(mc5); }
function mudaClipe6(event:MouseEvent):void { item = MovieClip(mc6); }
O problema é que tem uma figura com mais de 20 partes, e eu queria um comando genérico que entendesse que o último MC clicado seria o que teria a cor alterada...
Tentei armazenar numa variável, ou alterar o valor da variável 'item' definida lá no início, mas não está funcionando...
Pergunta
EvandroPH
Olá, estou tendo um pequeno problema com reaproveitamento de código fonte, e tendo que repetir em vários locais, gostaria de ajuda se puderem...
Explicando o problema:
estou desenvolvendo um sisteminha em flash onde o usuário escolhe uma figura em uma lista, e após disso ele pode personalizar as cores dessa figura, através de uma tabela básica de cores. são 24 cores, que criei o botão para elas e defini a cor específica de cada um botão nomeado de b1,b2,b3... usando array:
Após definir os botões e cores de cada um, fiz um loop para adicionar o evento aos botões: Após os botões, coloquei a figura e transformei cada "parte" dela em um MovieClip, ficando: mc1, mc2, mc3... Logo abaixo, a criação das variáveis que serão usadas no AS: E logo após a function que faz a troca da cor da figura: Até aí tudo certo, tudo funciona... Mas a hora de eu selecionar a "outra parte" que quero alterar a cor, não consigo fazer uma function genérica que eu consiga reutilizar para todos os MCs (mc1, mc2...) então tive que fazer assim:O problema é que tem uma figura com mais de 20 partes, e eu queria um comando genérico que entendesse que o último MC clicado seria o que teria a cor alterada...
Tentei armazenar numa variável, ou alterar o valor da variável 'item' definida lá no início, mas não está funcionando...
Algum help?
Editado por EvandroPHLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.