Bajé un ejemplo del blog de kadazuro pero la verdad es muy avanzado ese codigo para mí así que intenté hacer otro, y mas o menos me sale pero no del todo, voy calculando los valores RGB y se los voy poniendo con setTransform.
hice esta funcion
Código:
donde los valores que se pasan en la funcion R,G,B son los valores a los que quermos llegar.MovieClip.prototype.setColor = function(cambiar:Boolean,R:Number,G:Number,B:Number) { this.onEnterFrame = function() { if(cambiar) { myCol = new Color(this); velocidad=5; //por ejemplo. A mayor valor menor velocidad.; var allColors:Object = myCol.getTransform(); allColors.rb += (R-allColors.rb)/velocidad; allColors.gb += (G-allColors.gb)/velocidad; allColors.bb += (B-allColors.bb)/velocidad; myCol.setTransform(allColors); if(allColors.rb==R && allColors.gb==G && allColors.bb==B) {cambiar=false;} } }; };
hago el esaing mediante la siguiente formula, la cual se aplica para los tres colores (Red,Gren,Blue).
Valoractual += (ValorFinal - ValorActual)/velocidad;
esta formula la he utilizado antes para easings de movimiento, pero para el color no funciona bien, llega un punto donde el valor deja de incrementarse o decrementarse y nunca alcanza el ValorFinal. Por ejemplo si el valor al que quiero llegar es 255 el valoractual llega a un valor cercano, pero nunca a 255.
¿hay algo malo en mi formula del easyng? ¿Existe alguna otra?
Gracias a todos los que me puedan ayudar