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;
}




