Ir para conteúdo

POWERED BY:

Arquivado

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

diego.fernandes

Tween com cor

Recommended Posts

Boa tarde, amig@s!!

 

 

Estou com um probleminha num projeto que estou desenvolvendo.

 

Preciso alterar a cor de um MovieClip através de action script, mas tem que ser com Tween.

 

O projeto vai ser o seguinte:

 

O mc que preciso alterar a cor é o fundo das seções do site. Não posso fazer na timeline porque não sei qual vai ser a sequência que o usuário vai visualizar as seções. Sendo assim, preciso recuperar a cor atual do mc e transformá-la de forma suave na cor referente à seção que o usuário selecionou.

 

Sei como fazê-lo criando um objeto Color, mas gostaria de saber como fazer com a classe Tween.

 

myColor = new Color(_root.fundoimghome_mc);myColor.setRGB (0xAFC1B3);

 

Forte abraço a tod@s!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí, pessoal?? Como vão?!

 

 

 

Cheguei a um resultado interessante, mas ainda tenho um probleminha...

 

 

o código é o seguinte

 

on (release) {import mx.effects.Tween;function changeColor(target:MovieClip, rb:Number, gb:Number, bb:Number, alpha:Number){        var theColor:Color = new Color(target);        trans = theColor.getTransform();        var oTween:Tween = new Tween(target,[trans.rb,trans.gb,trans.bb],[rb,gb,bb],1000);        target.onTweenUpdate = function(valueX){                var oObj:Object = new Object();                oObj.ra = alpha;                oObj.rb = valueX[0];                oObj.ga = alpha;                oObj.gb = valueX[1];                oObj.ba = alpha;                oObj.bb = valueX[2];                theColor.setTransform(oObj);        }}changeColor(_root.fundoimghome_mc,166,196,142);}

 

O problema que está ocorrendo é que apenas no PRIMEIRO clique que o usário dá em qualquer opção do menu, a transição é feita a partir da cor preta.

 

Se alguém souber como resolver isso, agradeço!!

 

 

abraços!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tambem não entendi o pq, mais pelo teste que fiz aqui, e o fundoimghome_mc tiver ja com uma cor definida ele dá esse erro, mais se você colocar como tint (a cor que você quiser) meio que resolve o problema, exemplos:

 

fundo já com tint - eu optei por vermelho.

 

fundo sem o tint - cor original do mc (verde)

 

 

 

Agora eu conheço outr esquema legal tbm com tween:

 

no _root:

 

faça um mc e estancie de fundo_pagina (essa será o mc que irá mudar de cor)

 

no frame

#include "lmc_tween.as"

_global.alteraCorfundo = function(tempo, cor) {

_root.fundo_pagina.colorTo(cor, tempo);

};

////////sobre o _global você pode ver na area de tutoriais uam explicação sobre, ou no help.

/////////lmc_tween.as você pode vir aqui http://laco.wz.cz/tween/ (MovieClips Tweening Prototypes é uma extensão gratuita do Flash contendo as equações de tween dinâmico do Robert Penner)

 

 

Nos btn:

on (release) {

alteraCorfundo(3, 0x333333);//3 demora mais para fazer a mudança e cor

}

 

 

exemplo:

http://www.ophabyo.com/imasters/troca_cor_fundo/fundo3.html

 

 

Abraços

Fabio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve flasheir@s de plantão!

 

Depois de quase tudo resolvido esbarrei em outro probleminha, mas este parece ser mais simples... rss

 

Anteriormente estava trabalhando com as mudanças de cor acionadas por um onRelease em um mc... porém, o preciso é que isso seja feito num onEnterFrame, pois a cor só deverá mudar após a conclusão da animação que "desmonta" a seção atual.

 

Assim:

 

PHP

[*]CÓDIGO DO onRelease NO MC

[*]

[*]on (release) {

[*] _root.corfundohome = [175,193,179];  // declara a cor para a qual o MC fundoimghome_mc  vai mudar ===>> É ONDE ESTÁ MEU PROBLEMA

[*] _root.secao = galleria;  // seção referente à opção clicada

[*] _root.play();  // faz com que a animção prossiga

[*]}

 

 

Estou com problemas para declarar a variável da cor para que, quando num determinado frame, haja o tween

 

 

 

 

PHP

[*]ESTE É O CÓDIGO QUE REALIZA As FUNÇÕES DE MUDANÇA DE COR E DIRECINAMENTO PARA A SEÇÃO SELECIONADA

[*]

[*]

[*]onEnterFrame = function(){

[*]import mx.effects.Tween;

[*]function changeColor(target:MovieClip, rb:Number, gb:Number, bb:Number, alpha:Number){

[*] var theColor:Color = new Color(target);

[*] trans = theColor.getTransform();

[*] var oTween:Tween = new Tween(target,[trans.rb,trans.gb,trans.bb],[rb,gb,bb],500);

[*] target.onTweenUpdate = function(valueX){

[*] var oObj:Object = new Object();

[*] oObj.ra = alpha;

[*] oObj.rb = valueX[0];

[*] oObj.ga = alpha;

[*] oObj.gb = valueX[1];

[*] oObj.ba = alpha;

[*] oObj.bb = valueX[2];

[*] theColor.setTransform(oObj);

[*] }

[*]}

[*]changeColor(_root.fundoimghome_mc,_root.corfundohome);

[*]_root.gotoAndPlay(secao);

[*]}

 

Notem na linha 21 que ao invés de dizer o RGB da cor ( R, G, B ) eu coloquei a variável que foi declarada pelo onRelease, mas quando faço o teste, a animação é executada, mas quando chega no quadro quem tem o código acima o MC fundoimghome_mc fica preto e não da cor declarada no botão... acredito que seja pela falta da informação de cor.

 

 

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.