DropShadowFilter Parte I

0 COMENTARIOS -  Publicado hace 41 meses -  Clasificado en: , ,

Siguiendo con los nuevos filtros aparecidos con Flash 8, en esta ocasión vamos a ver un ejemplo de uso de DropShadowFilter. La clase DropShadowFilter permite añadir una sombra a diversos objetos de Flash. Cuenta con varias opciones para el estilo de la sombra, incluida sombra interior o exterior y modo de extractor. La sintaxis es la siguiente:

DropShadowFilter([distance:Number], [angle:Number], [color:Number], [alpha:Number], [blurX:Number], [blurY:Number], [strength:Number], [quality:Number], [inner:Boolean], [knockout:Boolean], [hideObject:Boolean])

El ejemplo parte de lo visto en otras anotaciones:

- Drag con easing
- BlurFilter II

1.- Creamos un clip de película dentro del cual creamos un botón que nos permitirá añadir las acciones pertinentes para el arrastre del clip. Asociado al dicho botón añadimos el siguiente actionscript:

on (press) {
	arrastrar = true;
	xd = _x-_root._xmouse;
	yd = _y-_root._ymouse;
}
on (release, releaseOutside) {
	arrastrar = false;
	xfinal = _root._xmouse;
	yfinal = _root._ymouse;
}

2.- Asociado al clip, en función de si estamos arrastrando o no el clip de película le asociamos unas fórmulas de easing tanto que controlen la posición del clip, como la sombra y la profundida (SwapDepths)

onClipEvent (load) {
	xfinal = _x;
	yfinal = _y;
	import flash.filters.DropShadowFilter;
}
onClipEvent (enterFrame) {
var dsf:DropShadowFilter = new DropShadowFilter(DesX, 40, 0xCCCCCC, 30, DesX, DesY, 1, 3, false, false, false);
//DropShadowFilter([distance:Number], [angle:Number], [color:Number], [alpha:Number], [blurX:Number], [blurY:Number], [strength:Number], [quality:Number], [inner:Boolean], [knockout:Boolean], [hideObject:Boolean])

this.filters = [dsf];
if (arrastrar) {
		this.swapDepths(_root.getNextHighestDepth());
		x = _root._xmouse+xd;
		y = _root._ymouse+yd;
		DesY = 0.75*Math.abs(difY) + difX/7;
    		DesX = 0.75*Math.abs(difX) + difY/7;
		difY = (_ymouse-this._y)/7;
         		difX = (_xmouse-this._x)/7;
	} else {
		x = xfinal+xd;
		y = yfinal+yd;
		if (DesX > 0){
		DesY--
		DesX--
		}
	}
	_x = _x+(x-_x)/3;
	_y = _y+(y-_y)/3;
}

Descargar archivo » »

Algunas entradas relacionadas:

También te puede interesar:

Haz un comentario

¡Gracias por dejar tu opinión! Por favor procura que tu comentarios sean apropiados respecto al tema tratado en la entrada; que no sean spam, u ofensivos, de otro modo, serán eliminados. Todos los comentarios serán moderados antes de su publicación por lo que su aparición en la web puede verse aplazada un cierto tiempo. Si deseas realizar algún comentario, crítica o sugerencia sobre la propia web puedes hacer a través de la siguiente dirección de correo: webintenta@webintenta.com