Foros del Web » Creando para Internet » Flash y Actionscript »

Función aplicable a MovieClips - dropShadow

Estas en el tema de Función aplicable a MovieClips - dropShadow en el foro de Flash y Actionscript en Foros del Web. Buenas.. cómo estan?? He creado con unos ejemplos un filtro dropShadow através de ActionScript... un mc aparece en el escenario con una determinada sombra.. cuando ...
  #1 (permalink)  
Antiguo 10/11/2007, 15:51
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 10 años, 1 mes
Puntos: 0
Función aplicable a MovieClips - dropShadow

Buenas.. cómo estan??

He creado con unos ejemplos un filtro dropShadow através de ActionScript... un mc aparece en el escenario con una determinada sombra.. cuando pasamos por arriba se incrementa en fuerza (strength) y cuando salimos de él vuelve al estado original... es algo asi:

Código:
//importamos el filtro
import flash.filters.DropShadowFilter;

//damos parámetros al filtro --> [distance:Number], [angle:Number], [color:Number], [alpha:Number], [blurX:Number], [blurY:Number], [strength:Number], [quality:Number], [inner:Boolean], [knockout:Boolean], [hideObject:Boolean]
var dropShadow:DropShadowFilter = new DropShadowFilter(2, 45, 0x000000, 1, 7, 7, 0.7, 2);

//lo aplicamos al mc
mc_01.filters = [dropShadow];

//cambiamos la oscuridad de la sombra onRollOver y onRollOut
mc_01.onRollOver = function() {
	this.onEnterFrame = function() {
		dropShadow.strength += 0.2;
		this.filters = [dropShadow];
		if (dropShadow.strength>=1.5) {
			delete this.onEnterFrame;
		}
	};
};

mc_01.onRollOut = function() {
	this.onEnterFrame = function() {
		dropShadow.strength -= 0.2;
		this.filters = [dropShadow];
		if (dropShadow.strength<=0.7) {
			delete this.onEnterFrame;
		}
	};
};
El tema es q si tengo muchos objetos a los que les quiero aplicar este efecto, tengo q repetir las líneas por la cantidad de objetos que tenga... por esto necesito hacer una funcion aumentaShadow() y otra disminuyeShadow() o alguna que contemple los dos.. para directamente aplicar esa funcion al los mc q quiera con una simple línea..


..Muchas gracias desde ya ;)
Saludos!
  #2 (permalink)  
Antiguo 10/11/2007, 16:52
 
Fecha de Ingreso: octubre-2007
Mensajes: 9
Antigüedad: 10 años, 1 mes
Puntos: 0
Re: Función aplicable a MovieClips - dropShadow

Estuve mirando un poco más y era muy sencillo ;)

Código:
//creamos las funciones aumenta y disminuyeShadow
aumentaShadow = function (movie, sombra) {
	movie.onRollOver = function() {
		this.onEnterFrame = function() {
			sombra.strength += 0.2;
			this.filters = [sombra];
			if (sombra.strength>=1.5) {
				delete this.onEnterFrame;
			}
		};
	};
};

disminuyeShadow = function (movie, sombra) {
	movie.onRollOut = function() {
		this.onEnterFrame = function() {
			sombra.strength -= 0.2;
			this.filters = [sombra];
			if (sombra.strength<=0.7) {
				delete this.onEnterFrame;
			}
		};
	};
};

//la aplicamos al mc que queramos
aumentaShadow(mc_01, sombra1);
disminuyeShadow(mc_01, sombra1);
Ahora bien.. encontré un problema. Supongamos que tenemos 3 botones a los que les aplicamos la misma sombra. Si estamos posicionados en el botón 1 y salimos a algun lugar vacío del escenario (esperando que la sombra regrese a su "fuerza" original) y luego entramos al botón 2 el efecto funciona bien... pero si del botón 1 pasamos directamente al botón 2 (sin darle tiempo a que baje el strength de la sombra) se activa la sombra sin fade digamos.. aparece oscuro de repente si hacer el efecto que creamos...

..esto lo solucioné creando distintas sombras para los distintos mc.. pero me imagino que debe haber una solución mejor, porque me parece absurdo crear varias sombras iguales si podemos crear una sola y aplicarla a todos los mc que queramos..

..bueno, si alguien tiene una idea, bienvenida! ;)
Saludos y espero que el post le sirva a alguien :p
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:45.