Jucks 0 Denunciar post Postado Janeiro 20, 2010 Boa noite pessoal. Estou precisando criar um projetinho que tem uma paleta de cores que pinta umas paredes. Preciso que a tinta da paleta de cor vermelha pinte uma parede de vermelho mas por ser uma parede, a tinta tem que ser um pouco transparente, para a parede nao ficar "chapada". eu fiz um codigo para a tinta: on(release) { _root.cor = 0xA6927A; //Exemplo de cor, nesse caso é vermelho. 0xff0000 é um número, dá pra setar na variável diretamente. //pinta a ponta do pincel da cor escolhida ponta_pincel = new Color(_root.ponteiro_pincel.cor_pincel); ponta_pincel.setRGB(0xA6927A); }e outro para a parede: on(load){ var ultima_cor = -1; //sem cor } on(release) { if(_root.flagFerramenta == 1){ //pincel //muda a cor da parede ultima_cor = _root.cor; var newColor = new Color(this); newColor.setRGB(_root.cor); var newTransf = newColor.getTransform(); newTransf.aa = 40; newTransf.ab = 70; newColor.setTransform(newTransf); }else{ var newColor = new Color(this); newColor.setRGB(_root.cor); var newTransf = newColor.getTransform(); newTransf.aa = 0; newTransf.ab = 0; newColor.setTransform(newTransf); } } Funciona mas eu gostaria de setar a transparencia na tinta ao inves de na parede. Alguem sabe como fazer? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Jerfs 1 Denunciar post Postado Janeiro 21, 2010 Porque você não cria um movieClip transparente em cima da parede, e quem receberá a tinta será ele... ae você trabalha a cor do MovieClip + o _Alpha dele e a parede ficará intacta... acho que conseguirá o efeito desejado. abs Compartilhar este post Link para o post Compartilhar em outros sites
Jucks 0 Denunciar post Postado Janeiro 22, 2010 Opa, Fiz justamente isto. O problema está no SET. No código atual, estou setando a transparencia no MC na parede. Mas eu gostaria de conseguir de setar a transparencia no local que seto a Cor que é um botão. on(release) { _root.cor = 0xA6927A; //Exemplo de cor, nesse caso é vermelho. 0xff0000 é um número, dá pra setar na variável diretamente. //pinta a ponta do pincel da cor escolhida ponta_pincel = new Color(_root.ponteiro_pincel.cor_pincel); ponta_pincel.setRGB(0xA6927A); } Isso por causa do contraste. Se eu pintar a mesma parede com uma cor escura e uma cor clara, a transparencia é a mesma se eu setar na parede, dando uma sensação estranha em um dos dois casos. Se eu conseguir setar a transparencia no local que seta a cor, poderei ajustar o problema Compartilhar este post Link para o post Compartilhar em outros sites
docFlash 0 Denunciar post Postado Janeiro 22, 2010 Preciso que a tinta da paleta de cor vermelha pinte uma parede de vermelho mas por ser uma parede, a tinta tem que ser um pouco transparentepor essa razao eu aconselhava a usar a cor da tinta normal e depois dependendo das vezes q passar na parede esta se torna cada vez mais opaca.Fica + realista e faz + sentido, se e' q eu entendi a ideia claro. Tem algumas formas diferentes de abordar uma aplicacao deste tipo (+ / - complexas), e com esse AS você nao andava muito longe de conseguir isso. Para nao complicar muito, deixo-lhe aqui um exemplo baseado no seu, q você pode ver se lhe serve ou nao: // variaveis e variacoes var cor:Number = 0xFF0000; var alphas:Number = 0; var quociente:Number = 5; // // a cor da ponta do pincel (mc: ponteiro_pincel.cor_pincel) ponta_pincel = new Color(ponteiro_pincel.cor_pincel); ponta_pincel.setRGB(cor); // // a cor da parede (mc: parede) var cor_da_parede:Color = new Color(parede); set_alphas(alphas); // // o botao(mc: botao) botao.onRelease = function(){ if(alphas <= 100){ alphas += quociente; set_alphas(alphas); } } // // funcao executada pelo 'botao' function set_alphas(n){ cor_da_parede.setRGB(cor); var newTransf:Object = {aa:n}; cor_da_parede.setTransform(newTransf); } Neste exemplo, sempre q você carregar no botao, a parede vai adquirindo gradualmente (quociente) a cor q foi tambem atribuida ao pincel. Note q no exemplo o AS do botao (instancia:botao) esta' na timeline e nao dentro do botao como você tem. Se quiser usar como no exemplo nao esqueca de apagar as acoes no botao. Cump. Compartilhar este post Link para o post Compartilhar em outros sites
Jucks 0 Denunciar post Postado Janeiro 22, 2010 // variaveis e variacoes var cor:Number = 0xFF0000; var alphas:Number = 0; var quociente:Number = 5; // // a cor da ponta do pincel (mc: ponteiro_pincel.cor_pincel) ponta_pincel = new Color(ponteiro_pincel.cor_pincel); ponta_pincel.setRGB(cor); // // a cor da parede (mc: parede) var cor_da_parede:Color = new Color(parede); set_alphas(alphas); // // o botao(mc: botao) botao.onRelease = function(){ if(alphas <= 100){ alphas += quociente; set_alphas(alphas); } } // // funcao executada pelo 'botao' function set_alphas(n){ cor_da_parede.setRGB(cor); var newTransf:Object = {aa:n}; cor_da_parede.setTransform(newTransf); } Não entendi como será esta troca gradual. Seria uma maneira de aumentar a porcentagem (opacidade) a cada clique? É isso? Não tem como eu definir uma transparencia padrão para cada tipo de cor? Obrigado e abraço. Compartilhar este post Link para o post Compartilhar em outros sites