Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2005, 13:59
Avatar de nodream
nodream
 
Fecha de Ingreso: septiembre-2003
Mensajes: 134
Antigüedad: 20 años, 7 meses
Puntos: 2
Easing con color

Hi, tengo un pequeño problema haciendo un easing de color

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:
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;}
   }
  };
};
donde los valores que se pasan en la funcion R,G,B son los valores a los que quermos llegar.

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