Hola a todos, ante que nada 2 cositas importantes: Primero disculpas por no estar colocando contenidos mas periódicamente ya que estoy gracias a Dios con mucho trabajo. Segundo este ejemplo esta hecho con flash 9 pero en action scrip 2.0 así que para abrir el archivo fla deben tener flash 9 o sino copien el código y peguelon en su proyecto en flash 8.
Trabajando en un proyecto para un cliente uno de los requerimientos del mismo hera poder crear unas películas dinámicamente pero cada película con diferente color. Para ello se me ocurrió usar la clase Color, pero O!!! sorpresa me entero que ya es una clase defazada para flash 8!!!! "que desactualizado estoy :(" . Defazada significa que fue reemplazada por otra clase nueva, pero esto no quita en la mayoría de los casos que nuestro AS 2.0 la pueda interpretar!. Así que mirando la nueva clase que se llama ColorTransform me encuentro que con la misma podemos manipular el offset de cada uno de los colores RGB. A consecuencia de esto me trajo a la memoria un prototype viejo en AS 1.0 que daba el efecto de quemar una imagen o fotografía, consiguiendo de este modo un efecto muy lindo a la hora de mostrar una foto.
Así que manos a la obra revivi dicho efecto renombrandolo como "Luz" usando esta nueva clase de AS 2.0.
Código mas excusas pur que :)
-
//definimos que es un proto y lo asociamos con los elementos que sean películas
-
//le pasamos 2 parametros, dirección y velocidad del efecto
-
MovieClip.prototype.luz = function(direccion:String, Velocidad:Number) {
-
//La dirección es realidad sera afectada por los valores -255 a 255 pasando por 0 que es la foto en su estado normal
-
var dir:Number = 0;
-
//aquí recuperamos la velocidad
-
var velocidad:Number = Velocidad;
-
//un contador para detener posteriormente los procesos
-
var contador:Number = 0;
-
//evaluamos la dirección y sobreescribimos las variables con los únicos 2 valores que necesitamos
-
if (direccion == "in") {
-
dir = 255;
-
contador = 0;
-
} else {
-
-255;
-
contador = -255;
-
}
-
//Importamos las clases necesarias pa que funke!
-
//
-
import flash.geom.Transform;
-
import flash.geom.ColorTransform;
-
//creamos una función que llamaremos periódicamente para aplicar el efecto, como parametro pasamos el
-
//nombre de instancia de la peli afectada
-
function saturar(peli:MovieClip) {
-
//creamos un nuevo objeto transform, y lo asociamos al mc (peli)
-
var trans:Transform = new Transform(peli);
-
//pasamos los valores que se deben aplicar a nuestra peli
-
var luzColorTransform:ColorTransform = new ColorTransform(1, 1, 1, 1, dir, dir, dir, dir);
-
//y los hacemos afectiva dicha coloración
-
trans.colorTransform = luzColorTransform;
-
//acá evaluamos pa que lado vamos
-
if (direccion == "in") {
-
dir--;
-
} else {
-
dir++;
-
}
-
if (dir == contador) {
-
//si ya completamos el proceso detenemos la recurrencia a nuestra función
-
clearInterval(intervalID);
-
}
-
}
-
//
-
//creamos una llamada periódica a una función pasando (nombre de la función, velocidad en ms, y la instancia del mc)
-
var intervalID:Number = setInterval(saturar, velocidad, this);
-
};
Como verán es muy simple, lo único que deben hacer es copiar este código y pegaro en el primer frame de su root. Como usa un setinterval no es necesario para la velocidad incrementar el frame rate.
Hasta aquí muy lindo!!! Pero como hago para aplicarlo a mis peli???????
-
//foto_mc[nombre de instancia].luz[nombre del proto]("in"[dirección], 1[velocidad])
-
foto_mc.luz("in",1);
Para que sea el efecto tipo out o de salida en el parametro "in" coloca "out" o simplemente nada "", la velocidad es un numero cualquiera, así que prueba pasarle varios para ver cual es el mas adecuado para vos.
-
//foto_mc[nombre de instancia].luz[nombre del proto]("in"[dirección], 1[velocidad])
-
foto_mc.luz("",1);
Puedes llamar a este proto la veces que quieras y cuando quieras con solo poner nombreInstancia.luz("in",1)
29 octubre, 2007 at 9:10 pm
El Ejemplo que colocas esta muy bien, de hecho ya lo trate de aplicar a un proyecto que estoy haciendo. Y me encontre que haciendo el ejemplo local funciona sin problemas y al subirlo a internet no hace lo que se supone tendria que hacer.
24 diciembre, 2008 at 3:53 pm
se el mismo truco utilzando solo el el color avanzado sin utilizar tanto codigo